{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 9: Combining Pandas Objects\n",
    "## Recipes\n",
    "* [Appending new rows to DataFrames](#Appending-new-rows-to-DataFrames)\n",
    "* [Concatenating multiple DataFrames together](#Concatenating-multiple-DataFrames-together)\n",
    "* [Comparing President Trump's and Obama's approval ratings](#Comparing-President-Trump's-and-Obama's-approval-ratings)\n",
    "* [Understanding the differences between concat, join, and merge](#Understanding-the-differences-between-concat,-join,-and-merge)\n",
    "* [Connecting to SQL databases](#Connecting-to-SQL-Databases)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Appending new rows to DataFrames"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Name  Age\n",
       "0  Cornelia   70\n",
       "1     Abbas   69\n",
       "2  Penelope    4\n",
       "3      Niko    2"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names = pd.read_csv('data/names.csv')\n",
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Aria</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Name  Age\n",
       "0  Cornelia   70\n",
       "1     Abbas   69\n",
       "2  Penelope    4\n",
       "3      Niko    2\n",
       "4      Aria    1"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data_list = ['Aria', 1]\n",
    "names.loc[4] = new_data_list\n",
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Aria</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>five</th>\n",
       "      <td>Zach</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Name  Age\n",
       "0     Cornelia   70\n",
       "1        Abbas   69\n",
       "2     Penelope    4\n",
       "3         Niko    2\n",
       "4         Aria    1\n",
       "five      Zach    3"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.loc['five'] = ['Zach', 3]\n",
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Aria</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>five</th>\n",
       "      <td>Zach</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Zayd</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Name  Age\n",
       "0     Cornelia   70\n",
       "1        Abbas   69\n",
       "2     Penelope    4\n",
       "3         Niko    2\n",
       "4         Aria    1\n",
       "five      Zach    3\n",
       "6         Zayd    2"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.loc[len(names)] = {'Name':'Zayd', 'Age':2}\n",
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Aria</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>five</th>\n",
       "      <td>Zach</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Zayd</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Name  Age\n",
       "0     Cornelia   70\n",
       "1        Abbas   69\n",
       "2     Penelope    4\n",
       "3         Niko    2\n",
       "4         Aria    1\n",
       "five      Zach    3\n",
       "6         Zayd    2"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Aria</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>five</th>\n",
       "      <td>Zach</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Zayd</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Dean</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Name  Age\n",
       "0     Cornelia   70\n",
       "1        Abbas   69\n",
       "2     Penelope    4\n",
       "3         Niko    2\n",
       "4         Aria    1\n",
       "five      Zach    3\n",
       "6         Zayd    2\n",
       "7         Dean   32"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.loc[len(names)] = pd.Series({'Age':32, 'Name':'Dean'})\n",
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "Can only append a Series if ignore_index=True or if the Series has a name",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-8-562aecc73587>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;31m# Use append with fresh copy of names\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0mnames\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'data/names.csv'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mnames\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'Name'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m'Aria'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Age'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m/Users/Ted/anaconda/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36mappend\u001b[0;34m(self, other, ignore_index, verify_integrity)\u001b[0m\n\u001b[1;32m   4515\u001b[0m                 \u001b[0mother\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mSeries\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4516\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mignore_index\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4517\u001b[0;31m                 raise TypeError('Can only append a Series if ignore_index=True'\n\u001b[0m\u001b[1;32m   4518\u001b[0m                                 ' or if the Series has a name')\n\u001b[1;32m   4519\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mTypeError\u001b[0m: Can only append a Series if ignore_index=True or if the Series has a name"
     ]
    }
   ],
   "source": [
    "# Use append with fresh copy of names\n",
    "names = pd.read_csv('data/names.csv')\n",
    "names.append({'Name':'Aria', 'Age':1})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Aria</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Name  Age\n",
       "0  Cornelia   70\n",
       "1     Abbas   69\n",
       "2  Penelope    4\n",
       "3      Niko    2\n",
       "4      Aria    1"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.append({'Name':'Aria', 'Age':1}, ignore_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Canada</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Canada</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>USA</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>USA</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Name  Age\n",
       "Canada  Cornelia   70\n",
       "Canada     Abbas   69\n",
       "USA     Penelope    4\n",
       "USA         Niko    2"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.index = ['Canada', 'Canada', 'USA', 'USA']\n",
    "names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Aria</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Name  Age\n",
       "0  Cornelia   70\n",
       "1     Abbas   69\n",
       "2  Penelope    4\n",
       "3      Niko    2\n",
       "4      Aria    1"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.append({'Name':'Aria', 'Age':1}, ignore_index=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Age        3\n",
       "Name    Zach\n",
       "Name: 4, dtype: object"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s = pd.Series({'Name': 'Zach', 'Age': 3}, name=len(names))\n",
    "s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Canada</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Canada</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>USA</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>USA</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Zach</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Name  Age\n",
       "Canada  Cornelia   70\n",
       "Canada     Abbas   69\n",
       "USA     Penelope    4\n",
       "USA         Niko    2\n",
       "4           Zach    3"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names.append(s)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Canada</th>\n",
       "      <td>Cornelia</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Canada</th>\n",
       "      <td>Abbas</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>USA</th>\n",
       "      <td>Penelope</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>USA</th>\n",
       "      <td>Niko</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Zach</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>USA</th>\n",
       "      <td>Zayd</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Name  Age\n",
       "Canada  Cornelia   70\n",
       "Canada     Abbas   69\n",
       "USA     Penelope    4\n",
       "USA         Niko    2\n",
       "4           Zach    3\n",
       "USA         Zayd    2"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1 = pd.Series({'Name': 'Zach', 'Age': 3}, name=len(names))\n",
    "s2 = pd.Series({'Name': 'Zayd', 'Age': 2}, name='USA')\n",
    "names.append([s1, s2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>playerID</th>\n",
       "      <th>yearID</th>\n",
       "      <th>stint</th>\n",
       "      <th>teamID</th>\n",
       "      <th>lgID</th>\n",
       "      <th>G</th>\n",
       "      <th>AB</th>\n",
       "      <th>R</th>\n",
       "      <th>H</th>\n",
       "      <th>2B</th>\n",
       "      <th>...</th>\n",
       "      <th>RBI</th>\n",
       "      <th>SB</th>\n",
       "      <th>CS</th>\n",
       "      <th>BB</th>\n",
       "      <th>SO</th>\n",
       "      <th>IBB</th>\n",
       "      <th>HBP</th>\n",
       "      <th>SH</th>\n",
       "      <th>SF</th>\n",
       "      <th>GIDP</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>altuvjo01</td>\n",
       "      <td>2016</td>\n",
       "      <td>1</td>\n",
       "      <td>HOU</td>\n",
       "      <td>AL</td>\n",
       "      <td>161</td>\n",
       "      <td>640</td>\n",
       "      <td>108</td>\n",
       "      <td>216</td>\n",
       "      <td>42</td>\n",
       "      <td>...</td>\n",
       "      <td>96.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>60</td>\n",
       "      <td>70.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>15.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>bregmal01</td>\n",
       "      <td>2016</td>\n",
       "      <td>1</td>\n",
       "      <td>HOU</td>\n",
       "      <td>AL</td>\n",
       "      <td>49</td>\n",
       "      <td>201</td>\n",
       "      <td>31</td>\n",
       "      <td>53</td>\n",
       "      <td>13</td>\n",
       "      <td>...</td>\n",
       "      <td>34.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>15</td>\n",
       "      <td>52.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>castrja01</td>\n",
       "      <td>2016</td>\n",
       "      <td>1</td>\n",
       "      <td>HOU</td>\n",
       "      <td>AL</td>\n",
       "      <td>113</td>\n",
       "      <td>329</td>\n",
       "      <td>41</td>\n",
       "      <td>69</td>\n",
       "      <td>16</td>\n",
       "      <td>...</td>\n",
       "      <td>32.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>45</td>\n",
       "      <td>123.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>correca01</td>\n",
       "      <td>2016</td>\n",
       "      <td>1</td>\n",
       "      <td>HOU</td>\n",
       "      <td>AL</td>\n",
       "      <td>153</td>\n",
       "      <td>577</td>\n",
       "      <td>76</td>\n",
       "      <td>158</td>\n",
       "      <td>36</td>\n",
       "      <td>...</td>\n",
       "      <td>96.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>75</td>\n",
       "      <td>139.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>12.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>gattiev01</td>\n",
       "      <td>2016</td>\n",
       "      <td>1</td>\n",
       "      <td>HOU</td>\n",
       "      <td>AL</td>\n",
       "      <td>128</td>\n",
       "      <td>447</td>\n",
       "      <td>58</td>\n",
       "      <td>112</td>\n",
       "      <td>19</td>\n",
       "      <td>...</td>\n",
       "      <td>72.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>43</td>\n",
       "      <td>127.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>12.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 22 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    playerID  yearID  stint teamID lgID    G   AB    R    H  2B  ...    RBI  \\\n",
       "0  altuvjo01    2016      1    HOU   AL  161  640  108  216  42  ...   96.0   \n",
       "1  bregmal01    2016      1    HOU   AL   49  201   31   53  13  ...   34.0   \n",
       "2  castrja01    2016      1    HOU   AL  113  329   41   69  16  ...   32.0   \n",
       "3  correca01    2016      1    HOU   AL  153  577   76  158  36  ...   96.0   \n",
       "4  gattiev01    2016      1    HOU   AL  128  447   58  112  19  ...   72.0   \n",
       "\n",
       "     SB    CS  BB     SO   IBB  HBP   SH   SF  GIDP  \n",
       "0  30.0  10.0  60   70.0  11.0  7.0  3.0  7.0  15.0  \n",
       "1   2.0   0.0  15   52.0   0.0  0.0  0.0  1.0   1.0  \n",
       "2   2.0   1.0  45  123.0   0.0  1.0  1.0  0.0   9.0  \n",
       "3  13.0   3.0  75  139.0   5.0  5.0  0.0  3.0  12.0  \n",
       "4   2.0   1.0  43  127.0   6.0  4.0  0.0  5.0  12.0  \n",
       "\n",
       "[5 rows x 22 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bball_16 = pd.read_csv('data/baseball16.csv')\n",
    "bball_16.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'playerID': 'altuvjo01', 'yearID': 2016, 'stint': 1, 'teamID': 'HOU', 'lgID': 'AL', 'G': 161, 'AB': 640, 'R': 108, 'H': 216, '2B': 42, '3B': 5, 'HR': 24, 'RBI': 96.0, 'SB': 30.0, 'CS': 10.0, 'BB': 60, 'SO': 70.0, 'IBB': 11.0, 'HBP': 7.0, 'SH': 3.0, 'SF': 7.0, 'GIDP': 15.0}\n"
     ]
    }
   ],
   "source": [
    "data_dict = bball_16.iloc[0].to_dict()\n",
    "print(data_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'playerID': '', 'yearID': nan, 'stint': nan, 'teamID': '', 'lgID': '', 'G': nan, 'AB': nan, 'R': nan, 'H': nan, '2B': nan, '3B': nan, 'HR': nan, 'RBI': nan, 'SB': nan, 'CS': nan, 'BB': nan, 'SO': nan, 'IBB': nan, 'HBP': nan, 'SH': nan, 'SF': nan, 'GIDP': nan}\n"
     ]
    }
   ],
   "source": [
    "new_data_dict = {k: '' if isinstance(v, str) else np.nan for k, v in data_dict.items()}\n",
    "print(new_data_dict)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## There's more..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2B    2\n",
       "3B    6\n",
       "AB    8\n",
       "BB    2\n",
       "CS    0\n",
       "Name: 16, dtype: object"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "random_data = []\n",
    "for i in range(1000):\n",
    "    d = dict()\n",
    "    for k, v in data_dict.items():\n",
    "        if isinstance(v, str):\n",
    "            d[k] = np.random.choice(list('abcde'))\n",
    "        else:\n",
    "            d[k] = np.random.randint(10)\n",
    "    random_data.append(pd.Series(d, name=i + len(bball_16)))\n",
    "    \n",
    "random_data[0].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5.36 s ± 298 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
     ]
    }
   ],
   "source": [
    "%%timeit\n",
    "bball_16_copy = bball_16.copy()\n",
    "for row in random_data:\n",
    "    bball_16_copy = bball_16_copy.append(row)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "86.2 ms ± 3.71 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
     ]
    }
   ],
   "source": [
    "%%timeit\n",
    "bball_16_copy = bball_16.copy()\n",
    "bball_16_copy = bball_16_copy.append(random_data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Concatenating multiple DataFrames together"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "stocks_2016 = pd.read_csv('data/stocks_2016.csv', index_col='Symbol')\n",
    "stocks_2017 = pd.read_csv('data/stocks_2017.csv', index_col='Symbol')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80</td>\n",
       "      <td>95</td>\n",
       "      <td>110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>80</td>\n",
       "      <td>130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40</td>\n",
       "      <td>55</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Shares  Low  High\n",
       "Symbol                   \n",
       "AAPL        80   95   110\n",
       "TSLA        50   80   130\n",
       "WMT         40   55    70"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stocks_2016"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>50</td>\n",
       "      <td>120</td>\n",
       "      <td>140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>100</td>\n",
       "      <td>30</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>87</td>\n",
       "      <td>75</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>20</td>\n",
       "      <td>55</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>500</td>\n",
       "      <td>15</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "      <td>300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Shares  Low  High\n",
       "Symbol                   \n",
       "AAPL        50  120   140\n",
       "GE         100   30    40\n",
       "IBM         87   75    95\n",
       "SLB         20   55    85\n",
       "TXN        500   15    23\n",
       "TSLA       100  100   300"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stocks_2017"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80</td>\n",
       "      <td>95</td>\n",
       "      <td>110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>80</td>\n",
       "      <td>130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40</td>\n",
       "      <td>55</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>50</td>\n",
       "      <td>120</td>\n",
       "      <td>140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>100</td>\n",
       "      <td>30</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>87</td>\n",
       "      <td>75</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>20</td>\n",
       "      <td>55</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>500</td>\n",
       "      <td>15</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "      <td>300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Shares  Low  High\n",
       "Symbol                   \n",
       "AAPL        80   95   110\n",
       "TSLA        50   80   130\n",
       "WMT         40   55    70\n",
       "AAPL        50  120   140\n",
       "GE         100   30    40\n",
       "IBM         87   75    95\n",
       "SLB         20   55    85\n",
       "TXN        500   15    23\n",
       "TSLA       100  100   300"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s_list = [stocks_2016, stocks_2017]\n",
    "pd.concat(s_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Year</th>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">2016</th>\n",
       "      <th>AAPL</th>\n",
       "      <td>80</td>\n",
       "      <td>95</td>\n",
       "      <td>110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>80</td>\n",
       "      <td>130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40</td>\n",
       "      <td>55</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"6\" valign=\"top\">2017</th>\n",
       "      <th>AAPL</th>\n",
       "      <td>50</td>\n",
       "      <td>120</td>\n",
       "      <td>140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>100</td>\n",
       "      <td>30</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>87</td>\n",
       "      <td>75</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>20</td>\n",
       "      <td>55</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>500</td>\n",
       "      <td>15</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "      <td>300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Shares  Low  High\n",
       "Year Symbol                   \n",
       "2016 AAPL        80   95   110\n",
       "     TSLA        50   80   130\n",
       "     WMT         40   55    70\n",
       "2017 AAPL        50  120   140\n",
       "     GE         100   30    40\n",
       "     IBM         87   75    95\n",
       "     SLB         20   55    85\n",
       "     TXN        500   15    23\n",
       "     TSLA       100  100   300"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat(s_list, keys=['2016', '2017'], names=['Year', 'Symbol'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th>Year</th>\n",
       "      <th colspan=\"3\" halign=\"left\">2016</th>\n",
       "      <th colspan=\"3\" halign=\"left\">2017</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>110.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>120.0</td>\n",
       "      <td>140.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>100.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>40.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>87.0</td>\n",
       "      <td>75.0</td>\n",
       "      <td>95.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>20.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>85.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>130.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>300.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>500.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>23.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Year   2016                2017              \n",
       "     Shares   Low   High Shares    Low   High\n",
       "AAPL   80.0  95.0  110.0   50.0  120.0  140.0\n",
       "GE      NaN   NaN    NaN  100.0   30.0   40.0\n",
       "IBM     NaN   NaN    NaN   87.0   75.0   95.0\n",
       "SLB     NaN   NaN    NaN   20.0   55.0   85.0\n",
       "TSLA   50.0  80.0  130.0  100.0  100.0  300.0\n",
       "TXN     NaN   NaN    NaN  500.0   15.0   23.0\n",
       "WMT    40.0  55.0   70.0    NaN    NaN    NaN"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat(s_list, keys=['2016', '2017'], axis='columns', names=['Year', None])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th>Year</th>\n",
       "      <th colspan=\"3\" halign=\"left\">2016</th>\n",
       "      <th colspan=\"3\" halign=\"left\">2017</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80</td>\n",
       "      <td>95</td>\n",
       "      <td>110</td>\n",
       "      <td>50</td>\n",
       "      <td>120</td>\n",
       "      <td>140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>80</td>\n",
       "      <td>130</td>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "      <td>300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Year     2016            2017          \n",
       "       Shares Low High Shares  Low High\n",
       "Symbol                                 \n",
       "AAPL       80  95  110     50  120  140\n",
       "TSLA       50  80  130    100  100  300"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat(s_list, join='inner', keys=['2016', '2017'], axis='columns', names=['Year', None])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## There's more..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80</td>\n",
       "      <td>95</td>\n",
       "      <td>110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>80</td>\n",
       "      <td>130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40</td>\n",
       "      <td>55</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>50</td>\n",
       "      <td>120</td>\n",
       "      <td>140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>100</td>\n",
       "      <td>30</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>87</td>\n",
       "      <td>75</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>20</td>\n",
       "      <td>55</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>500</td>\n",
       "      <td>15</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "      <td>300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Shares  Low  High\n",
       "Symbol                   \n",
       "AAPL        80   95   110\n",
       "TSLA        50   80   130\n",
       "WMT         40   55    70\n",
       "AAPL        50  120   140\n",
       "GE         100   30    40\n",
       "IBM         87   75    95\n",
       "SLB         20   55    85\n",
       "TXN        500   15    23\n",
       "TSLA       100  100   300"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stocks_2016.append(stocks_2017)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "stocks_2015 = stocks_2016.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>50</td>\n",
       "      <td>120</td>\n",
       "      <td>140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>100</td>\n",
       "      <td>30</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>87</td>\n",
       "      <td>75</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>20</td>\n",
       "      <td>55</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>500</td>\n",
       "      <td>15</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "      <td>300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Shares  Low  High\n",
       "Symbol                   \n",
       "AAPL        50  120   140\n",
       "GE         100   30    40\n",
       "IBM         87   75    95\n",
       "SLB         20   55    85\n",
       "TXN        500   15    23\n",
       "TSLA       100  100   300"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stocks_2017"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "possibly add rule for no duplicate index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Comparing President Trump's and Obama's approval ratings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "14"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "base_url = 'http://www.presidency.ucsb.edu/data/popularity.php?pres={}'\n",
    "trump_url = base_url.format(45)\n",
    "\n",
    "df_list = pd.read_html(trump_url)\n",
    "len(df_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(324, 1906)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df0 = df_list[0]\n",
    "df0.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>1896</th>\n",
       "      <th>1897</th>\n",
       "      <th>1898</th>\n",
       "      <th>1899</th>\n",
       "      <th>1900</th>\n",
       "      <th>1901</th>\n",
       "      <th>1902</th>\n",
       "      <th>1903</th>\n",
       "      <th>1904</th>\n",
       "      <th>1905</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Document Archive  • Public Papers of the Presi...</td>\n",
       "      <td>Document Archive  • Public Papers of the Presi...</td>\n",
       "      <td>Document Archive  • Public Papers of the Presi...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Document Archive</td>\n",
       "      <td>• Public Papers of the Presidents</td>\n",
       "      <td>• State of the Union  Addresses &amp; Messages</td>\n",
       "      <td>• Inaugural Addresses</td>\n",
       "      <td>• Farewell Addresses</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>01/20/2017</td>\n",
       "      <td>01/22/2017</td>\n",
       "      <td>NaN</td>\n",
       "      <td>45.0</td>\n",
       "      <td>45.0</td>\n",
       "      <td>10</td>\n",
       "      <td>Question:</td>\n",
       "      <td>Do you approve or disapprove of the way [first...</td>\n",
       "      <td>data adapted from the Gallup Poll and compiled...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>7 rows × 1906 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                0     \\\n",
       "0                                                NaN   \n",
       "1                                                NaN   \n",
       "2                                                NaN   \n",
       "3                                                NaN   \n",
       "4                                                NaN   \n",
       "5                                                NaN   \n",
       "6  Document Archive  • Public Papers of the Presi...   \n",
       "\n",
       "                                                1     \\\n",
       "0                                                NaN   \n",
       "1                                                NaN   \n",
       "2                                                NaN   \n",
       "3                                                NaN   \n",
       "4                                                NaN   \n",
       "5                                                NaN   \n",
       "6  Document Archive  • Public Papers of the Presi...   \n",
       "\n",
       "                                                2    3    4     \\\n",
       "0                                                NaN  NaN  NaN   \n",
       "1                                                NaN  NaN  NaN   \n",
       "2                                                NaN  NaN  NaN   \n",
       "3                                                NaN  NaN  NaN   \n",
       "4                                                NaN  NaN  NaN   \n",
       "5                                                NaN  NaN  NaN   \n",
       "6  Document Archive  • Public Papers of the Presi...  NaN  NaN   \n",
       "\n",
       "               5                                  6     \\\n",
       "0               NaN                                NaN   \n",
       "1               NaN                                NaN   \n",
       "2               NaN                                NaN   \n",
       "3               NaN                                NaN   \n",
       "4               NaN                                NaN   \n",
       "5               NaN                                NaN   \n",
       "6  Document Archive  • Public Papers of the Presidents   \n",
       "\n",
       "                                         7                      8     \\\n",
       "0                                         NaN                    NaN   \n",
       "1                                         NaN                    NaN   \n",
       "2                                         NaN                    NaN   \n",
       "3                                         NaN                    NaN   \n",
       "4                                         NaN                    NaN   \n",
       "5                                         NaN                    NaN   \n",
       "6  • State of the Union  Addresses & Messages  • Inaugural Addresses   \n",
       "\n",
       "                   9                           ...                          \\\n",
       "0                   NaN                        ...                           \n",
       "1                   NaN                        ...                           \n",
       "2                   NaN                        ...                           \n",
       "3                   NaN                        ...                           \n",
       "4                   NaN                        ...                           \n",
       "5                   NaN                        ...                           \n",
       "6  • Farewell Addresses                        ...                           \n",
       "\n",
       "  1896        1897        1898 1899  1900  1901 1902       1903  \\\n",
       "0  NaN         NaN         NaN  NaN   NaN   NaN  NaN        NaN   \n",
       "1  NaN         NaN         NaN  NaN   NaN   NaN  NaN        NaN   \n",
       "2  NaN         NaN         NaN  NaN   NaN   NaN  NaN        NaN   \n",
       "3  NaN         NaN         NaN  NaN   NaN   NaN  NaN        NaN   \n",
       "4  NaN         NaN         NaN  NaN   NaN   NaN  NaN        NaN   \n",
       "5  NaN         NaN         NaN  NaN   NaN   NaN  NaN        NaN   \n",
       "6  NaN  01/20/2017  01/22/2017  NaN  45.0  45.0   10  Question:   \n",
       "\n",
       "                                                1904  \\\n",
       "0                                                NaN   \n",
       "1                                                NaN   \n",
       "2                                                NaN   \n",
       "3                                                NaN   \n",
       "4                                                NaN   \n",
       "5                                                NaN   \n",
       "6  Do you approve or disapprove of the way [first...   \n",
       "\n",
       "                                                1905  \n",
       "0                                                NaN  \n",
       "1                                                NaN  \n",
       "2                                                NaN  \n",
       "3                                                NaN  \n",
       "4                                                NaN  \n",
       "5                                                NaN  \n",
       "6  data adapted from the Gallup Poll and compiled...  \n",
       "\n",
       "[7 rows x 1906 columns]"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df0.head(7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_list = pd.read_html(trump_url, match='Start Date')\n",
    "len(df_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_list = pd.read_html(trump_url, match='Start Date', attrs={'align':'center'})\n",
    "len(df_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(265, 19)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trump = df_list[0]\n",
    "trump.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "      <th>14</th>\n",
       "      <th>15</th>\n",
       "      <th>16</th>\n",
       "      <th>17</th>\n",
       "      <th>18</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>&gt;84  84-67  66-55  54-50  49-45  44-40  39-35 ...</td>\n",
       "      <td>&gt;84</td>\n",
       "      <td>84-67</td>\n",
       "      <td>66-55</td>\n",
       "      <td>54-50</td>\n",
       "      <td>49-45</td>\n",
       "      <td>44-40</td>\n",
       "      <td>39-35</td>\n",
       "      <td>34-25</td>\n",
       "      <td>&lt;25</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>&gt;84</td>\n",
       "      <td>84-67</td>\n",
       "      <td>66-55</td>\n",
       "      <td>54-50</td>\n",
       "      <td>49-45</td>\n",
       "      <td>44-40</td>\n",
       "      <td>39-35</td>\n",
       "      <td>34-25</td>\n",
       "      <td>&lt;25</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>%</td>\n",
       "      <td>%</td>\n",
       "      <td>%</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>President</td>\n",
       "      <td>Start Date</td>\n",
       "      <td>End Date</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Approving</td>\n",
       "      <td>Disapproving</td>\n",
       "      <td>unsure/no data</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>10/09/2017</td>\n",
       "      <td>10/11/2017</td>\n",
       "      <td>NaN</td>\n",
       "      <td>37</td>\n",
       "      <td>57</td>\n",
       "      <td>6</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>NaN</td>\n",
       "      <td>10/08/2017</td>\n",
       "      <td>10/10/2017</td>\n",
       "      <td>NaN</td>\n",
       "      <td>37</td>\n",
       "      <td>56</td>\n",
       "      <td>7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                  0           1           2   \\\n",
       "0  >84  84-67  66-55  54-50  49-45  44-40  39-35 ...         >84       84-67   \n",
       "1                                                >84       84-67       66-55   \n",
       "2                                                NaN         NaN         NaN   \n",
       "3                                                NaN         NaN         NaN   \n",
       "4                                          President  Start Date    End Date   \n",
       "5                                                NaN         NaN         NaN   \n",
       "6                                    Donald J. Trump  10/09/2017  10/11/2017   \n",
       "7                                                NaN  10/08/2017  10/10/2017   \n",
       "\n",
       "      3          4             5               6      7      8    9   10  11  \\\n",
       "0  66-55      54-50         49-45           44-40  39-35  34-25  <25 NaN NaN   \n",
       "1  54-50      49-45         44-40           39-35  34-25    <25  NaN NaN NaN   \n",
       "2    NaN        NaN           NaN             NaN    NaN    NaN  NaN NaN NaN   \n",
       "3    NaN          %             %               %    NaN    NaN  NaN NaN NaN   \n",
       "4    NaN  Approving  Disapproving  unsure/no data    NaN    NaN  NaN NaN NaN   \n",
       "5    NaN        NaN           NaN             NaN    NaN    NaN  NaN NaN NaN   \n",
       "6    NaN         37            57               6    NaN    NaN  NaN NaN NaN   \n",
       "7    NaN         37            56               7    NaN    NaN  NaN NaN NaN   \n",
       "\n",
       "   12  13  14  15  16  17  18  \n",
       "0 NaN NaN NaN NaN NaN NaN NaN  \n",
       "1 NaN NaN NaN NaN NaN NaN NaN  \n",
       "2 NaN NaN NaN NaN NaN NaN NaN  \n",
       "3 NaN NaN NaN NaN NaN NaN NaN  \n",
       "4 NaN NaN NaN NaN NaN NaN NaN  \n",
       "5 NaN NaN NaN NaN NaN NaN NaN  \n",
       "6 NaN NaN NaN NaN NaN NaN NaN  \n",
       "7 NaN NaN NaN NaN NaN NaN NaN  "
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trump.head(8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>President</th>\n",
       "      <th>Start Date</th>\n",
       "      <th>End Date</th>\n",
       "      <th>Unnamed: 3</th>\n",
       "      <th>Approving</th>\n",
       "      <th>Disapproving</th>\n",
       "      <th>unsure/no data</th>\n",
       "      <th>Unnamed: 7</th>\n",
       "      <th>Unnamed: 8</th>\n",
       "      <th>Unnamed: 9</th>\n",
       "      <th>Unnamed: 10</th>\n",
       "      <th>Unnamed: 11</th>\n",
       "      <th>Unnamed: 12</th>\n",
       "      <th>Unnamed: 13</th>\n",
       "      <th>Unnamed: 14</th>\n",
       "      <th>Unnamed: 15</th>\n",
       "      <th>Unnamed: 16</th>\n",
       "      <th>Unnamed: 17</th>\n",
       "      <th>Unnamed: 18</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-10-09</td>\n",
       "      <td>2017-10-11</td>\n",
       "      <td>NaN</td>\n",
       "      <td>37</td>\n",
       "      <td>57</td>\n",
       "      <td>6</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NaN</td>\n",
       "      <td>2017-10-08</td>\n",
       "      <td>2017-10-10</td>\n",
       "      <td>NaN</td>\n",
       "      <td>37</td>\n",
       "      <td>56</td>\n",
       "      <td>7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>2017-10-07</td>\n",
       "      <td>2017-10-09</td>\n",
       "      <td>NaN</td>\n",
       "      <td>36</td>\n",
       "      <td>58</td>\n",
       "      <td>6</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>2017-10-06</td>\n",
       "      <td>2017-10-08</td>\n",
       "      <td>NaN</td>\n",
       "      <td>37</td>\n",
       "      <td>56</td>\n",
       "      <td>7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>NaN</td>\n",
       "      <td>2017-10-05</td>\n",
       "      <td>2017-10-07</td>\n",
       "      <td>NaN</td>\n",
       "      <td>38</td>\n",
       "      <td>57</td>\n",
       "      <td>5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         President Start Date   End Date  Unnamed: 3  Approving  Disapproving  \\\n",
       "0  Donald J. Trump 2017-10-09 2017-10-11         NaN         37            57   \n",
       "1              NaN 2017-10-08 2017-10-10         NaN         37            56   \n",
       "2              NaN 2017-10-07 2017-10-09         NaN         36            58   \n",
       "3              NaN 2017-10-06 2017-10-08         NaN         37            56   \n",
       "4              NaN 2017-10-05 2017-10-07         NaN         38            57   \n",
       "\n",
       "   unsure/no data  Unnamed: 7  Unnamed: 8  Unnamed: 9  Unnamed: 10  \\\n",
       "0               6         NaN         NaN         NaN          NaN   \n",
       "1               7         NaN         NaN         NaN          NaN   \n",
       "2               6         NaN         NaN         NaN          NaN   \n",
       "3               7         NaN         NaN         NaN          NaN   \n",
       "4               5         NaN         NaN         NaN          NaN   \n",
       "\n",
       "   Unnamed: 11  Unnamed: 12  Unnamed: 13  Unnamed: 14  Unnamed: 15  \\\n",
       "0          NaN          NaN          NaN          NaN          NaN   \n",
       "1          NaN          NaN          NaN          NaN          NaN   \n",
       "2          NaN          NaN          NaN          NaN          NaN   \n",
       "3          NaN          NaN          NaN          NaN          NaN   \n",
       "4          NaN          NaN          NaN          NaN          NaN   \n",
       "\n",
       "   Unnamed: 16  Unnamed: 17  Unnamed: 18  \n",
       "0          NaN          NaN          NaN  \n",
       "1          NaN          NaN          NaN  \n",
       "2          NaN          NaN          NaN  \n",
       "3          NaN          NaN          NaN  \n",
       "4          NaN          NaN          NaN  "
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_list = pd.read_html(trump_url, match='Start Date', attrs={'align':'center'}, \n",
    "                       header=0, skiprows=[0,1,2,3,5], parse_dates=['Start Date', 'End Date'])\n",
    "trump = df_list[0]\n",
    "trump.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>President</th>\n",
       "      <th>Start Date</th>\n",
       "      <th>End Date</th>\n",
       "      <th>Approving</th>\n",
       "      <th>Disapproving</th>\n",
       "      <th>unsure/no data</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-10-09</td>\n",
       "      <td>2017-10-11</td>\n",
       "      <td>37</td>\n",
       "      <td>57</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NaN</td>\n",
       "      <td>2017-10-08</td>\n",
       "      <td>2017-10-10</td>\n",
       "      <td>37</td>\n",
       "      <td>56</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>2017-10-07</td>\n",
       "      <td>2017-10-09</td>\n",
       "      <td>36</td>\n",
       "      <td>58</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>2017-10-06</td>\n",
       "      <td>2017-10-08</td>\n",
       "      <td>37</td>\n",
       "      <td>56</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>NaN</td>\n",
       "      <td>2017-10-05</td>\n",
       "      <td>2017-10-07</td>\n",
       "      <td>38</td>\n",
       "      <td>57</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         President Start Date   End Date  Approving  Disapproving  \\\n",
       "0  Donald J. Trump 2017-10-09 2017-10-11         37            57   \n",
       "1              NaN 2017-10-08 2017-10-10         37            56   \n",
       "2              NaN 2017-10-07 2017-10-09         36            58   \n",
       "3              NaN 2017-10-06 2017-10-08         37            56   \n",
       "4              NaN 2017-10-05 2017-10-07         38            57   \n",
       "\n",
       "   unsure/no data  \n",
       "0               6  \n",
       "1               7  \n",
       "2               6  \n",
       "3               7  \n",
       "4               5  "
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trump = trump.dropna(axis=1, how='all')\n",
    "trump.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "President         258\n",
       "Start Date          0\n",
       "End Date            0\n",
       "Approving           0\n",
       "Disapproving        0\n",
       "unsure/no data      0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trump.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>President</th>\n",
       "      <th>Start Date</th>\n",
       "      <th>End Date</th>\n",
       "      <th>Approving</th>\n",
       "      <th>Disapproving</th>\n",
       "      <th>unsure/no data</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-10-09</td>\n",
       "      <td>2017-10-11</td>\n",
       "      <td>37</td>\n",
       "      <td>57</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-10-08</td>\n",
       "      <td>2017-10-10</td>\n",
       "      <td>37</td>\n",
       "      <td>56</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-10-07</td>\n",
       "      <td>2017-10-09</td>\n",
       "      <td>36</td>\n",
       "      <td>58</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-10-06</td>\n",
       "      <td>2017-10-08</td>\n",
       "      <td>37</td>\n",
       "      <td>56</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-10-05</td>\n",
       "      <td>2017-10-07</td>\n",
       "      <td>38</td>\n",
       "      <td>57</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         President Start Date   End Date  Approving  Disapproving  \\\n",
       "0  Donald J. Trump 2017-10-09 2017-10-11         37            57   \n",
       "1  Donald J. Trump 2017-10-08 2017-10-10         37            56   \n",
       "2  Donald J. Trump 2017-10-07 2017-10-09         36            58   \n",
       "3  Donald J. Trump 2017-10-06 2017-10-08         37            56   \n",
       "4  Donald J. Trump 2017-10-05 2017-10-07         38            57   \n",
       "\n",
       "   unsure/no data  \n",
       "0               6  \n",
       "1               7  \n",
       "2               6  \n",
       "3               7  \n",
       "4               5  "
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trump = trump.ffill()\n",
    "trump.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "President                 object\n",
       "Start Date        datetime64[ns]\n",
       "End Date          datetime64[ns]\n",
       "Approving                  int64\n",
       "Disapproving               int64\n",
       "unsure/no data             int64\n",
       "dtype: object"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trump.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def get_pres_appr(pres_num):\n",
    "    base_url = 'http://www.presidency.ucsb.edu/data/popularity.php?pres={}'\n",
    "    pres_url = base_url.format(pres_num)\n",
    "    df_list = pd.read_html(pres_url, match='Start Date', attrs={'align':'center'}, \n",
    "                       header=0, skiprows=[0,1,2,3,5], parse_dates=['Start Date', 'End Date'])\n",
    "    pres = df_list[0].copy()\n",
    "    pres = pres.dropna(axis=1, how='all')\n",
    "    pres['President'] = pres['President'].ffill()\n",
    "    return pres.sort_values('End Date').reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>President</th>\n",
       "      <th>Start Date</th>\n",
       "      <th>End Date</th>\n",
       "      <th>Approving</th>\n",
       "      <th>Disapproving</th>\n",
       "      <th>unsure/no data</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-21</td>\n",
       "      <td>2009-01-23</td>\n",
       "      <td>68</td>\n",
       "      <td>12</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-22</td>\n",
       "      <td>2009-01-24</td>\n",
       "      <td>69</td>\n",
       "      <td>13</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-23</td>\n",
       "      <td>2009-01-25</td>\n",
       "      <td>67</td>\n",
       "      <td>14</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-24</td>\n",
       "      <td>2009-01-26</td>\n",
       "      <td>65</td>\n",
       "      <td>15</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-25</td>\n",
       "      <td>2009-01-27</td>\n",
       "      <td>64</td>\n",
       "      <td>16</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      President Start Date   End Date  Approving  Disapproving  unsure/no data\n",
       "0  Barack Obama 2009-01-21 2009-01-23         68            12              21\n",
       "1  Barack Obama 2009-01-22 2009-01-24         69            13              18\n",
       "2  Barack Obama 2009-01-23 2009-01-25         67            14              19\n",
       "3  Barack Obama 2009-01-24 2009-01-26         65            15              20\n",
       "4  Barack Obama 2009-01-25 2009-01-27         64            16              20"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "obama = get_pres_appr(44)\n",
    "obama.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>President</th>\n",
       "      <th>Start Date</th>\n",
       "      <th>End Date</th>\n",
       "      <th>Approving</th>\n",
       "      <th>Disapproving</th>\n",
       "      <th>unsure/no data</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>George Bush</td>\n",
       "      <td>1989-01-24</td>\n",
       "      <td>1989-01-26</td>\n",
       "      <td>51</td>\n",
       "      <td>6</td>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>George Bush</td>\n",
       "      <td>1989-02-24</td>\n",
       "      <td>1989-02-27</td>\n",
       "      <td>60</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>George Bush</td>\n",
       "      <td>1989-02-28</td>\n",
       "      <td>1989-03-02</td>\n",
       "      <td>62</td>\n",
       "      <td>13</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>158</th>\n",
       "      <td>William J. Clinton</td>\n",
       "      <td>1993-01-24</td>\n",
       "      <td>1993-01-26</td>\n",
       "      <td>58</td>\n",
       "      <td>20</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>159</th>\n",
       "      <td>William J. Clinton</td>\n",
       "      <td>1993-01-29</td>\n",
       "      <td>1993-01-31</td>\n",
       "      <td>53</td>\n",
       "      <td>30</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>160</th>\n",
       "      <td>William J. Clinton</td>\n",
       "      <td>1993-02-12</td>\n",
       "      <td>1993-02-14</td>\n",
       "      <td>51</td>\n",
       "      <td>33</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>386</th>\n",
       "      <td>George W. Bush</td>\n",
       "      <td>2001-02-01</td>\n",
       "      <td>2001-02-04</td>\n",
       "      <td>57</td>\n",
       "      <td>25</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>387</th>\n",
       "      <td>George W. Bush</td>\n",
       "      <td>2001-02-09</td>\n",
       "      <td>2001-02-11</td>\n",
       "      <td>57</td>\n",
       "      <td>24</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>388</th>\n",
       "      <td>George W. Bush</td>\n",
       "      <td>2001-02-19</td>\n",
       "      <td>2001-02-21</td>\n",
       "      <td>61</td>\n",
       "      <td>21</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>656</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-21</td>\n",
       "      <td>2009-01-23</td>\n",
       "      <td>68</td>\n",
       "      <td>12</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>657</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-22</td>\n",
       "      <td>2009-01-24</td>\n",
       "      <td>69</td>\n",
       "      <td>13</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>658</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-23</td>\n",
       "      <td>2009-01-25</td>\n",
       "      <td>67</td>\n",
       "      <td>14</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3443</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-01-20</td>\n",
       "      <td>2017-01-22</td>\n",
       "      <td>45</td>\n",
       "      <td>45</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3444</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-01-21</td>\n",
       "      <td>2017-01-23</td>\n",
       "      <td>45</td>\n",
       "      <td>46</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3445</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-01-22</td>\n",
       "      <td>2017-01-24</td>\n",
       "      <td>46</td>\n",
       "      <td>45</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               President Start Date   End Date  Approving  Disapproving  \\\n",
       "0            George Bush 1989-01-24 1989-01-26         51             6   \n",
       "1            George Bush 1989-02-24 1989-02-27         60            11   \n",
       "2            George Bush 1989-02-28 1989-03-02         62            13   \n",
       "158   William J. Clinton 1993-01-24 1993-01-26         58            20   \n",
       "159   William J. Clinton 1993-01-29 1993-01-31         53            30   \n",
       "160   William J. Clinton 1993-02-12 1993-02-14         51            33   \n",
       "386       George W. Bush 2001-02-01 2001-02-04         57            25   \n",
       "387       George W. Bush 2001-02-09 2001-02-11         57            24   \n",
       "388       George W. Bush 2001-02-19 2001-02-21         61            21   \n",
       "656         Barack Obama 2009-01-21 2009-01-23         68            12   \n",
       "657         Barack Obama 2009-01-22 2009-01-24         69            13   \n",
       "658         Barack Obama 2009-01-23 2009-01-25         67            14   \n",
       "3443     Donald J. Trump 2017-01-20 2017-01-22         45            45   \n",
       "3444     Donald J. Trump 2017-01-21 2017-01-23         45            46   \n",
       "3445     Donald J. Trump 2017-01-22 2017-01-24         46            45   \n",
       "\n",
       "      unsure/no data  \n",
       "0                 43  \n",
       "1                 27  \n",
       "2                 24  \n",
       "158               22  \n",
       "159               16  \n",
       "160               15  \n",
       "386               18  \n",
       "387               17  \n",
       "388               16  \n",
       "656               21  \n",
       "657               18  \n",
       "658               19  \n",
       "3443              10  \n",
       "3444               9  \n",
       "3445               9  "
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_41_45 = pd.concat([get_pres_appr(x) for x in range(41,46)], ignore_index=True)\n",
    "pres_41_45.groupby('President').head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1990-03-11    2\n",
       "1990-08-12    2\n",
       "1990-08-26    2\n",
       "2013-10-10    2\n",
       "1999-02-09    2\n",
       "1992-11-22    2\n",
       "1990-05-22    2\n",
       "2005-01-05    1\n",
       "Name: End Date, dtype: int64"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_41_45['End Date'].value_counts().head(8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "pres_41_45 = pres_41_45.drop_duplicates(subset='End Date')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(3695, 6)"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_41_45.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Barack Obama          2786\n",
       "George W. Bush         270\n",
       "Donald J. Trump        259\n",
       "William J. Clinton     227\n",
       "George Bush            153\n",
       "Name: President, dtype: int64"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_41_45['President'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Approving</th>\n",
       "      <th>Disapproving</th>\n",
       "      <th>unsure/no data</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>President</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>George Bush</th>\n",
       "      <td>62.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>William J. Clinton</th>\n",
       "      <td>57.0</td>\n",
       "      <td>36.0</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>George W. Bush</th>\n",
       "      <td>50.5</td>\n",
       "      <td>45.5</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Barack Obama</th>\n",
       "      <td>47.0</td>\n",
       "      <td>47.0</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Donald J. Trump</th>\n",
       "      <td>39.0</td>\n",
       "      <td>56.0</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    Approving  Disapproving  unsure/no data\n",
       "President                                                  \n",
       "George Bush              62.0          22.0             9.0\n",
       "William J. Clinton       57.0          36.0             6.0\n",
       "George W. Bush           50.5          45.5             4.0\n",
       "Barack Obama             47.0          47.0             7.0\n",
       "Donald J. Trump          39.0          56.0             6.0"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_41_45.groupby('President', sort=False).median().round(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6IAAAFuCAYAAACbTaVhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3XlYVdX6wPHvAlRwAEccEyHNARBE\nwClxqrQSrZw1h0q7atrNm1qWWeYty+lng1maiZaVmkmWdnNKjaBElJwHUlScQVEBwQOs3x/nsAMn\npgMH8f08j4/n7L3X2u858ADvedegtNYIIYQQQgghhBDFxc7WAQghhBBCCCGEuLdIIiqEEEIIIYQQ\nolhJIiqEEEIIIYQQolhJIiqEEEIIIYQQolhJIiqEEEIIIYQQolhJIiqEEEIIIYQQolhJIiqEEKLE\nUUoNU0qFFVHf7ZVSh2wdR0milNqilBpejPdLUkp5FNf9hBBClDySiAohxD1OKRWrlLpmSQ7OKaUW\nK6Uq2joua1FKaaVUw6znWuvftNaNrdh/Bct7t85afZYkSqm3lFImy2tMVEqFK6Xa5KP9TUmu1rqi\n1vqo9aMVQghxt5BEVAghBECw1roi4AcEAJNvvECZye+Nm/UG0oBHlFK1i+omSin7ouo7D5Zbvj+q\nA78CK20YixBCiFJA/qAQQghh0FqfAn4GvMCoZr2jlPodSAE8lFIuSqlFSqkzSqlTSqn/ZiVJSqmG\nSqmtSqnLSql4pdTyrL6VUk2UUhuUUheVUoeUUn2znaumlFqjlLqilNoO3J89rlzahiil5iml1iql\nriql/lRK3W85t81y2V+Wil4/pVRHpVRctvavKqX+trTdr5R6Mp9v21DgU2A3MOiGuGOVUpMs/V6y\nVJsdLec6KqXilFKvWd6rWKXUoGxtQ5RS85VS65RSyUAny3u/VCl1QSl1XCk1WSllp5QqZ6lWemVr\nX8NS6XZVSlVRSv1kaXfJ8rhePl8nWut0YBlQVylVw3Kf2/atlHoHaA98bHn/P7YcN6rUd/r6Wc4/\nYvmaX1ZKfWL5/iq2YcRCCCGKhiSiQgghDEqp+4DHgF3ZDg8GngcqAceBJUA60BBoATwCZCUG04D1\nQBWgHvCRpd8KwAbga8AVGAB8opTytLSbB6QCtYFnLf/IY1ssx6Za7hsDvAOgtQ6ynPexDAddzs3+\n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\nRtn/MxqaKyIiUrnKFhSqDVu3buX666/nsssuO2TU0ltvvcWzzz7LoEGD6Nq162Ff56mnnuKxxx7j\ngw8+4JJLLuHss8+u9VhFJJ3M7CV371PdeerSkhpTASoiInJ4dVGEQjTnc9SoUXTqdOgmHGFbAAAP\nz0lEQVRmBV26dGHChAnVvsbatWtZtGgRV199Nd26dSPOTgkRkTJ181dSRERERGpddnY25513Hs2b\nNy+fD/ree+8xdepUiouLWblyZZXXrly5klmzZtGiRQsGDBhA69atyc7OpkmTJnGFLyJSToWoiIiI\nSIZZtmwZM2fOBOC4446jZ8+erFq1invuuafKa0pKSti8eTPt2rWjoKCA6667jsWLF8cVsojIATRH\nVERERCTDbNq0ie3bt1NQEG3tvm3bNnJycigtLaVly5bVXr9q1SqKi4tp0qQJs2fPrutwRSRFNEdU\nREREpIHq2LEjHTt2LH9ck21XnnzySRYuXEhxcXGle5KKiMRBQ3NFREREUmDDhg3ceeedNG7cmCFD\nhpCTk6MFCEUkMSpERURERFLA3dmxYwf5+fn06tWLyy+/nAULFiQdloiklApRERERkRTIz8/nlltu\nIT8/v3x7mddeey3hqEQkrTRHVERERCRF7r33XtasWcO8efOSDkVEUkyFqIiIiEhKzJw5kz179jB0\n6NCkQxGRlNPQXBEREZGUcHdOO+00CgoKmDhxIgsXLkw6JBFJKfWIioiIiKTE1KlT2bNnD1u2bAFg\n48aNCUckImmlQlREREQkRaZNm0ZeXp7miIpIojQ0V0RERCQlHn30Ud5++20KCwuTDkVEUk6FqIiI\niEhK5OTkUFhYSNu2bZk4cSKLFi1KOiQRSSkNzRURERFJiXPOOQeAvXv30q9fPwYPHpxwRCKSVipE\nRURERFImOzubKVOmJB2GiKSYhuaKiIiIiIhIrFSIioiIiIiISKxUiIqIiIiIiEisVIiKiIiIiIhI\nrFSIioiIiIiISKxUiIqIiIiIiEisVIiKiIiIiIhIrFSIioiIiIiISKxUiIqIiIiIiEisVIiKiIiI\niIhIrFSIioiIiIiISKzM3eP7YWZbgQ2x/cB0ywPeTzoIiY3ynT7Keboo3+mjnKeL8p0uDT3fn3H3\nttWdFGshKvExs9Xu3ifpOCQeynf6KOfponynj3KeLsp3uijfEQ3NFRERERERkVipEBUREREREZFY\n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\nRERERERipUJUREREREREYqVCVERERERERGKlQlRERERERERipUJUREREREREYqVCVERERERERGL1\n/3Oay/RhB3ehAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x115f3dcc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import cm\n",
    "fig, ax = plt.subplots(figsize=(16,6))\n",
    "\n",
    "styles = ['-.', '-', ':', '-', ':']\n",
    "colors = [.9, .3, .7, .3, .9]\n",
    "groups = pres_41_45.groupby('President', sort=False)\n",
    "\n",
    "for style, color, (pres, df) in zip(styles, colors, groups):\n",
    "    df.plot('End Date', 'Approving', ax=ax, label=pres, style=style, color=cm.Greys(color), \n",
    "            title='Presedential Approval Rating')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "days_func = lambda x: x - x.iloc[0]\n",
    "pres_41_45['Days in Office'] = pres_41_45.groupby('President') \\\n",
    "                                             ['End Date'] \\\n",
    "                                             .transform(days_func)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>President</th>\n",
       "      <th>Start Date</th>\n",
       "      <th>End Date</th>\n",
       "      <th>Approving</th>\n",
       "      <th>Disapproving</th>\n",
       "      <th>unsure/no data</th>\n",
       "      <th>Days in Office</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>George Bush</td>\n",
       "      <td>1989-01-24</td>\n",
       "      <td>1989-01-26</td>\n",
       "      <td>51</td>\n",
       "      <td>6</td>\n",
       "      <td>43</td>\n",
       "      <td>0 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>George Bush</td>\n",
       "      <td>1989-02-24</td>\n",
       "      <td>1989-02-27</td>\n",
       "      <td>60</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "      <td>32 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>George Bush</td>\n",
       "      <td>1989-02-28</td>\n",
       "      <td>1989-03-02</td>\n",
       "      <td>62</td>\n",
       "      <td>13</td>\n",
       "      <td>24</td>\n",
       "      <td>35 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>158</th>\n",
       "      <td>William J. Clinton</td>\n",
       "      <td>1993-01-24</td>\n",
       "      <td>1993-01-26</td>\n",
       "      <td>58</td>\n",
       "      <td>20</td>\n",
       "      <td>22</td>\n",
       "      <td>0 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>159</th>\n",
       "      <td>William J. Clinton</td>\n",
       "      <td>1993-01-29</td>\n",
       "      <td>1993-01-31</td>\n",
       "      <td>53</td>\n",
       "      <td>30</td>\n",
       "      <td>16</td>\n",
       "      <td>5 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>160</th>\n",
       "      <td>William J. Clinton</td>\n",
       "      <td>1993-02-12</td>\n",
       "      <td>1993-02-14</td>\n",
       "      <td>51</td>\n",
       "      <td>33</td>\n",
       "      <td>15</td>\n",
       "      <td>19 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>386</th>\n",
       "      <td>George W. Bush</td>\n",
       "      <td>2001-02-01</td>\n",
       "      <td>2001-02-04</td>\n",
       "      <td>57</td>\n",
       "      <td>25</td>\n",
       "      <td>18</td>\n",
       "      <td>0 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>387</th>\n",
       "      <td>George W. Bush</td>\n",
       "      <td>2001-02-09</td>\n",
       "      <td>2001-02-11</td>\n",
       "      <td>57</td>\n",
       "      <td>24</td>\n",
       "      <td>17</td>\n",
       "      <td>7 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>388</th>\n",
       "      <td>George W. Bush</td>\n",
       "      <td>2001-02-19</td>\n",
       "      <td>2001-02-21</td>\n",
       "      <td>61</td>\n",
       "      <td>21</td>\n",
       "      <td>16</td>\n",
       "      <td>17 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>656</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-21</td>\n",
       "      <td>2009-01-23</td>\n",
       "      <td>68</td>\n",
       "      <td>12</td>\n",
       "      <td>21</td>\n",
       "      <td>0 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>657</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-22</td>\n",
       "      <td>2009-01-24</td>\n",
       "      <td>69</td>\n",
       "      <td>13</td>\n",
       "      <td>18</td>\n",
       "      <td>1 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>658</th>\n",
       "      <td>Barack Obama</td>\n",
       "      <td>2009-01-23</td>\n",
       "      <td>2009-01-25</td>\n",
       "      <td>67</td>\n",
       "      <td>14</td>\n",
       "      <td>19</td>\n",
       "      <td>2 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3443</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-01-20</td>\n",
       "      <td>2017-01-22</td>\n",
       "      <td>45</td>\n",
       "      <td>45</td>\n",
       "      <td>10</td>\n",
       "      <td>0 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3444</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-01-21</td>\n",
       "      <td>2017-01-23</td>\n",
       "      <td>45</td>\n",
       "      <td>46</td>\n",
       "      <td>9</td>\n",
       "      <td>1 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3445</th>\n",
       "      <td>Donald J. Trump</td>\n",
       "      <td>2017-01-22</td>\n",
       "      <td>2017-01-24</td>\n",
       "      <td>46</td>\n",
       "      <td>45</td>\n",
       "      <td>9</td>\n",
       "      <td>2 days</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               President Start Date   End Date  Approving  Disapproving  \\\n",
       "0            George Bush 1989-01-24 1989-01-26         51             6   \n",
       "1            George Bush 1989-02-24 1989-02-27         60            11   \n",
       "2            George Bush 1989-02-28 1989-03-02         62            13   \n",
       "158   William J. Clinton 1993-01-24 1993-01-26         58            20   \n",
       "159   William J. Clinton 1993-01-29 1993-01-31         53            30   \n",
       "160   William J. Clinton 1993-02-12 1993-02-14         51            33   \n",
       "386       George W. Bush 2001-02-01 2001-02-04         57            25   \n",
       "387       George W. Bush 2001-02-09 2001-02-11         57            24   \n",
       "388       George W. Bush 2001-02-19 2001-02-21         61            21   \n",
       "656         Barack Obama 2009-01-21 2009-01-23         68            12   \n",
       "657         Barack Obama 2009-01-22 2009-01-24         69            13   \n",
       "658         Barack Obama 2009-01-23 2009-01-25         67            14   \n",
       "3443     Donald J. Trump 2017-01-20 2017-01-22         45            45   \n",
       "3444     Donald J. Trump 2017-01-21 2017-01-23         45            46   \n",
       "3445     Donald J. Trump 2017-01-22 2017-01-24         46            45   \n",
       "\n",
       "      unsure/no data Days in Office  \n",
       "0                 43         0 days  \n",
       "1                 27        32 days  \n",
       "2                 24        35 days  \n",
       "158               22         0 days  \n",
       "159               16         5 days  \n",
       "160               15        19 days  \n",
       "386               18         0 days  \n",
       "387               17         7 days  \n",
       "388               16        17 days  \n",
       "656               21         0 days  \n",
       "657               18         1 days  \n",
       "658               19         2 days  \n",
       "3443              10         0 days  \n",
       "3444               9         1 days  \n",
       "3445               9         2 days  "
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_41_45['Days in Office'] = pres_41_45.groupby('President')['End Date'].transform(lambda x: x - x.iloc[0])\n",
    "pres_41_45.groupby('President').head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "President                  object\n",
       "Start Date         datetime64[ns]\n",
       "End Date           datetime64[ns]\n",
       "Approving                   int64\n",
       "Disapproving                int64\n",
       "unsure/no data              int64\n",
       "Days in Office    timedelta64[ns]\n",
       "dtype: object"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_41_45.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     0\n",
       "1    32\n",
       "2    35\n",
       "3    43\n",
       "4    46\n",
       "Name: Days in Office, dtype: int64"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_41_45['Days in Office'] = pres_41_45['Days in Office'].dt.days\n",
    "pres_41_45['Days in Office'].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>President</th>\n",
       "      <th>Barack Obama</th>\n",
       "      <th>Donald J. Trump</th>\n",
       "      <th>George Bush</th>\n",
       "      <th>George W. Bush</th>\n",
       "      <th>William J. Clinton</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Days in Office</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>68.0</td>\n",
       "      <td>45.0</td>\n",
       "      <td>51.0</td>\n",
       "      <td>57.0</td>\n",
       "      <td>58.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>69.0</td>\n",
       "      <td>45.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>67.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>65.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>64.0</td>\n",
       "      <td>45.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "President       Barack Obama  Donald J. Trump  George Bush  George W. Bush  \\\n",
       "Days in Office                                                               \n",
       "0                       68.0             45.0         51.0            57.0   \n",
       "1                       69.0             45.0          NaN             NaN   \n",
       "2                       67.0             46.0          NaN             NaN   \n",
       "3                       65.0             46.0          NaN             NaN   \n",
       "4                       64.0             45.0          NaN             NaN   \n",
       "\n",
       "President       William J. Clinton  \n",
       "Days in Office                      \n",
       "0                             58.0  \n",
       "1                              NaN  \n",
       "2                              NaN  \n",
       "3                              NaN  \n",
       "4                              NaN  "
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_pivot = pres_41_45.pivot(index='Days in Office', columns='President', values='Approving')\n",
    "pres_pivot.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1152254a8>"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nAXgkSdohhCgC8EsAtQCMAP5XSZImEzNMIiIiIiLKBBs3bozpPoPBgNnZ2aQn5VlJcnNzUVJSApPJ\nBLlcHqh/mk6imUE9JEnS1nkbXv8fAOclSWoAcP7Z10REREREtMJ5PJ4FWXLDKSgo4OxpEviz9s7M\nzKTlXt/llJn5HQAHn/33/wRwEcB/XeZ4iIiIiIgow/X19eHhw4dwu91QKpUAns7e5eXlwev1YmRk\nJHCtJEkYGxtDXV0d8vLyUjXkFaO8vBwajQYffPBBRgeoEoCzQggJwH+XJOnHAMolSbIAgCRJFiFE\nWagbhRBfAfAVAMuutUREREREROlPr9ejs7MT9+/fDxxraGjA2rVr4fF4cOvWrQX3VFZWJnOIK5YQ\nAnl5eXj11VeRzJKjkYqoDqoQokKSJPOzIPRtAH8E4DeSJGnnXTMpSVLhUu2wDioRERER0cowNzcH\nl8sV+FqlUkGlUsHn88FutwddK5fLY0qsROlnuXVQI5pBlSTJ/OzfI0KI/wDwMoBhIYTu2eypDsDI\nko0QEREREdGKkZ2djezs7AXHZTIZ8vPzUzAiygRhkyQJITRCiDz/fwN4DcBHAH4D4HefXfa7AP4z\nUYMkIiIiIiKiF18kM6jlAP7jWfphBYB/kiTptBDiAwD/IoT4AwB9AP6XxA2TiIiIiIiIXnRhA1RJ\nknoAbAlxfBxAcyIGRURERERERCtPNHVQiYiIiIiIiBKGASoRERERERGlBQaoRERERERElBYYoBIR\nEREREVFaYIBKREREREREaYEBKhEREREREaUFBqhERERERESUFhigEhERERERUVpggEpERERERERp\ngQEqERERERERpQUGqERERERERJQWGKASERERERFRWmCASkRERERERGmBASoRERERERGlBQaoRERE\nRERElBYYoBIREREREVFaYIBKREREREREaYEBKhEREREREaUFBqhERERERESUFhigEhERERERUVpg\ngEpERERERERpgQEqERERERERpQUGqERERERERJQWGKASERERERFRWmCASkRERERERGmBASoRERER\nERGlBQaoRERERERElBYUqR4AAPT39+P27duBr+VyOQ4ePIjc3NwUjoqIiIiIiIiSKeUBqiRJ+O53\nv4vu7u6g4xaLBV/+8pdTNCoiIiIiIiJKtpQv8X38+DG6u7vx5S9/Gb/4xS/wi1/8Anv37sX58+cx\n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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11521d5f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_kwargs = dict(figsize=(16,6), color=cm.gray([.3, .7]), style=['-', '--'], title='Approval Rating')\n",
    "pres_pivot.loc[:250, ['Donald J. Trump', 'Barack Obama']].ffill().plot(**plot_kwargs)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## There's more..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "President    End Date  \n",
       "George Bush  1989-01-26    51.000000\n",
       "             1989-02-27    55.500000\n",
       "             1989-03-02    57.666667\n",
       "             1989-03-10    58.750000\n",
       "             1989-03-13    58.200000\n",
       "Name: Approving, dtype: float64"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pres_rm = pres_41_45.groupby('President', sort=False) \\\n",
    "                    .rolling('90D', on='End Date')['Approving'] \\\n",
    "                    .mean()\n",
    "pres_rm.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1162d0780>"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nZQ4vYSXlbdmyhWeeeYaxY8fSpUuXmM7ZuXMnEydO5JZbbqF3794JjlBERATOOecchg4dirsfcZoY\nQEZGBuPHj6+w3dixY2nTpk2iwhQRaVDat2/PCSecwPHHH1+r66gQlcMUFRXx2GOP0atXr5gL0ezs\nbJYuXXrIvTciIiKJ1LVr15jabdiwAXevdFGjdu3aAbB//35WrVqltQ5ERI4gLS2Np556qtbXUdUg\nh+ncuTPLli3jggsuiPkcM6NVq1YcddRRCYxMRETkUJs2beKDDz44Ypu3336bu+66i5KSkiO2e+WV\nV3j44YcTsnG7iEhDs3XrVh544AE2bdpUo/M1IioVatGiRbXaz549m1WrVjFhwoQqp0eJiIjEywcf\nfMDs2bPp379/pesbfO9732PgwIGVbjVQZvTo0Zx77rm0bt06EaGKiDQou3bt4qGHHuLEE0+MadG4\nb9KIqFRowYIFXHbZZeTl5cXU/o033uAvf/mLilAREYnUiBEjuO+++464yF7r1q3p1atXlddq2rSp\nilARkRj17NmTJUuW0L9/f1auXBnTwnHlqRCVCu3atYt3332X7du3x9T+888/j/l+UhERkXjJzs6m\nVatWlT5eWFjIhx9+yI4dO2K63t69e5k+fTrLly+PV4giIg1S2a15GRkZXHHFFdVefVyFqFSoefPm\nQLBwQ1UKCgpYuXJlTL3NIiIi8Zabm8s777xT4WObN29m2rRprFmzJqZrNWnShDVr1rBt27Z4higi\n0mA1atSI9u3bs2zZsmqdp3tEpUJlheiePXuqbLt48WIKCwsZPHhwosMSERE5zPz589m4cSPDhg07\n7LGOHTtyxx13HHHUtLz09HTuvPNOrQIvIhKj7OxsXn755Wqfp0JUKtS+fXsANm7cWGXbnJwc0tLS\nGDhwYKLDEhEROcz48eNJT6/4I016ejodOnSo1vXKitC9e/eSlZVV6/hERORw6u6TCrVt25YWLVrE\nNJUpJyeHvn370rJlywgiExEROVRGRkalI5gfffQRK1asqPY1Z82axW9+8xsKCwtrG56IiFRAhahU\nyMw4/vjjWb169RHbbdmyhaVLl3LmmWdGFJmIiMihvvjiC1566SX27dt32GMzZ85k3rx51b7mSSed\nxOjRo6vce1RERGpGU3OlUj169GDu3LkUFBRUuiz+448/DsDYsWOjDE1EROSgLVu2MHv2bM4888yD\naxyUmTx5Ml999VW1r9mtWze6desWrxBFROQbNCIqlbrwwgvZsWPHEXuSmzdvzmWXXaatW0REJGlO\nO+00nnzyyYPrGwDMmzePLVu2kJmZSXZ2do2uW1JSwooVKzQ9V0QkAVSISqVOOeUUBg8eTNOmTQF4\n+OGHOfvss9m6devBNtdffz233XZbskIUERGhUaNGmBmlpaXk5+ezb98+Zs6cyZtvvlmr63766afc\ne++9zJw5k8LCQhYtWkRRUdHBx4uKinjhhRd46623avsSRERSjrl7ZE82YMAAz83Njez5JD6Kioq4\n+OKLWbJkCQDnnXcekyZNYtWqVZx11lmYWZIjFBERgenTp7N9+3auu+46du/eTdOmTSu9tSQWpaWl\nvP322zz77LOMGDGCuXPncv755zNmzBgAVq5cybRp07juuuvo2LFjvF6GiEi9ZmaL3H1AVe10j6hU\n6fnnnz+kCJ01axZffvklubm5vPfee3rzFRGROmHEiBG8/PLLFBUVxbxv6JE0atSIs846i9atW9Op\nUydOP/10unXrxtatW2nXrh29e/fmd7/7Hcccc8wR11MQEZHDaURUjuiMM85g8+bN9OvXj1dffZWC\nggKGDBnC5ZdfzqmnnsqgQYOSHaKIiEhkSkpKmDhxIn369GHcuHGUlpby3HPPsWDBAu644w5tZSYi\nKU8johIX5557Lk899RQnnngiZkbTpk157733aNasWbJDExERiVxaWhrHHnssQ4YMAYJR0+985zu0\nadNGRaiISDVoRFSqtHHjxoNvvCIiIlK51atX06FDh4ML/YmIpJpYR0S1aq5UqUOHDipCRUREqvDF\nF19w++23H1xXQUREKqdCVERERCQOOnXqxPjx4zn55JOTHYqISJ2nQlREREQkDho1asTgwYPJysqK\n2zWff/555syZE7friYjUFSpERUREROKkqKiI+fPns379+mqfu3PnTvLz8wEoW8Nj69at7N69O64x\niojUBSpERUREROLE3fnjH//IBx98UGXbL7/8kuLi4oPnTZw4kZkzZ7Ju3ToeffRRioqK+OUvf8lF\nF12U6LBFRCKnQlREREQkTjIzM7n11lsZO3ZshY/v27ePBQsWsGvXroOFp7tz2223UVRUxMiRI9mw\nYQOrV6+mpKSEzMxMzIxPPvmETz75JOJXIyKSONpHVERERCSOjjvuuEofmzNnDrNmzeKuu+5i1KhR\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113facf28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "styles = ['-.', '-', ':', '-', ':']\n",
    "colors = [.9, .3, .7, .3, .9]\n",
    "color = cm.Greys(colors)\n",
    "title='90 Day Approval Rating Rolling Average'\n",
    "plot_kwargs = dict(figsize=(16,6), style=styles, color = color, title=title)\n",
    "correct_col_order = pres_41_45.President.unique()\n",
    "pres_rm.unstack('President')[correct_col_order].plot(**plot_kwargs)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Understanding the differences between concat, join, and merge"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table style=\"display: inline;\" border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80</td>\n",
       "      <td>95</td>\n",
       "      <td>110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>80</td>\n",
       "      <td>130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40</td>\n",
       "      <td>55</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<table style=\"display: inline;\" border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>50</td>\n",
       "      <td>120</td>\n",
       "      <td>140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>100</td>\n",
       "      <td>30</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>87</td>\n",
       "      <td>75</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>20</td>\n",
       "      <td>55</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>500</td>\n",
       "      <td>15</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "      <td>300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<table style=\"display: inline;\" border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>40</td>\n",
       "      <td>135</td>\n",
       "      <td>170</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AMZN</th>\n",
       "      <td>8</td>\n",
       "      <td>900</td>\n",
       "      <td>1125</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>220</td>\n",
       "      <td>400</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from IPython.display import display_html\n",
    "\n",
    "years = 2016, 2017, 2018\n",
    "stock_tables = [pd.read_csv('data/stocks_{}.csv'.format(year), index_col='Symbol') \n",
    "                for year in years]\n",
    "\n",
    "def display_frames(frames, num_spaces=0):\n",
    "    t_style = '<table style=\"display: inline;\"'\n",
    "    tables_html = [df.to_html().replace('<table', t_style) for df in frames]\n",
    "\n",
    "    space = '&nbsp;' * num_spaces\n",
    "    display_html(space.join(tables_html), raw=True)\n",
    "\n",
    "display_frames(stock_tables, 30)\n",
    "stocks_2016, stocks_2017, stocks_2018 = stock_tables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">2016</th>\n",
       "      <th>AAPL</th>\n",
       "      <td>80</td>\n",
       "      <td>95</td>\n",
       "      <td>110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>80</td>\n",
       "      <td>130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40</td>\n",
       "      <td>55</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"6\" valign=\"top\">2017</th>\n",
       "      <th>AAPL</th>\n",
       "      <td>50</td>\n",
       "      <td>120</td>\n",
       "      <td>140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>100</td>\n",
       "      <td>30</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>87</td>\n",
       "      <td>75</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>20</td>\n",
       "      <td>55</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>500</td>\n",
       "      <td>15</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "      <td>300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">2018</th>\n",
       "      <th>AAPL</th>\n",
       "      <td>40</td>\n",
       "      <td>135</td>\n",
       "      <td>170</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AMZN</th>\n",
       "      <td>8</td>\n",
       "      <td>900</td>\n",
       "      <td>1125</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>220</td>\n",
       "      <td>400</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Shares  Low  High\n",
       "     Symbol                   \n",
       "2016 AAPL        80   95   110\n",
       "     TSLA        50   80   130\n",
       "     WMT         40   55    70\n",
       "2017 AAPL        50  120   140\n",
       "     GE         100   30    40\n",
       "     IBM         87   75    95\n",
       "     SLB         20   55    85\n",
       "     TXN        500   15    23\n",
       "     TSLA       100  100   300\n",
       "2018 AAPL        40  135   170\n",
       "     AMZN         8  900  1125\n",
       "     TSLA        50  220   400"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat(stock_tables, keys=[2016, 2017, 2018])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"3\" halign=\"left\">2016</th>\n",
       "      <th colspan=\"3\" halign=\"left\">2017</th>\n",
       "      <th colspan=\"3\" halign=\"left\">2018</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>110.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>120.0</td>\n",
       "      <td>140.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>135.0</td>\n",
       "      <td>170.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AMZN</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8.0</td>\n",
       "      <td>900.0</td>\n",
       "      <td>1125.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>100.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>87.0</td>\n",
       "      <td>75.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>20.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>85.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>130.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>300.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>220.0</td>\n",
       "      <td>400.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>500.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       2016                2017                 2018               \n",
       "     Shares   Low   High Shares    Low   High Shares    Low    High\n",
       "AAPL   80.0  95.0  110.0   50.0  120.0  140.0   40.0  135.0   170.0\n",
       "AMZN    NaN   NaN    NaN    NaN    NaN    NaN    8.0  900.0  1125.0\n",
       "GE      NaN   NaN    NaN  100.0   30.0   40.0    NaN    NaN     NaN\n",
       "IBM     NaN   NaN    NaN   87.0   75.0   95.0    NaN    NaN     NaN\n",
       "SLB     NaN   NaN    NaN   20.0   55.0   85.0    NaN    NaN     NaN\n",
       "TSLA   50.0  80.0  130.0  100.0  100.0  300.0   50.0  220.0   400.0\n",
       "TXN     NaN   NaN    NaN  500.0   15.0   23.0    NaN    NaN     NaN\n",
       "WMT    40.0  55.0   70.0    NaN    NaN    NaN    NaN    NaN     NaN"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat(dict(zip(years,stock_tables)), axis='columns')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares_2016</th>\n",
       "      <th>Low_2016</th>\n",
       "      <th>High_2016</th>\n",
       "      <th>Shares_2017</th>\n",
       "      <th>Low_2017</th>\n",
       "      <th>High_2017</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>110.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>120.0</td>\n",
       "      <td>140.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>100.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>40.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>87.0</td>\n",
       "      <td>75.0</td>\n",
       "      <td>95.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>20.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>85.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>130.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>300.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>500.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>23.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Shares_2016  Low_2016  High_2016  Shares_2017  Low_2017  High_2017\n",
       "Symbol                                                                    \n",
       "AAPL           80.0      95.0      110.0         50.0     120.0      140.0\n",
       "GE              NaN       NaN        NaN        100.0      30.0       40.0\n",
       "IBM             NaN       NaN        NaN         87.0      75.0       95.0\n",
       "SLB             NaN       NaN        NaN         20.0      55.0       85.0\n",
       "TSLA           50.0      80.0      130.0        100.0     100.0      300.0\n",
       "TXN             NaN       NaN        NaN        500.0      15.0       23.0\n",
       "WMT            40.0      55.0       70.0          NaN       NaN        NaN"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stocks_2016.join(stocks_2017, lsuffix='_2016', rsuffix='_2017', how='outer')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares</th>\n",
       "      <th>Low</th>\n",
       "      <th>High</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Symbol</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80</td>\n",
       "      <td>95</td>\n",
       "      <td>110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50</td>\n",
       "      <td>80</td>\n",
       "      <td>130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40</td>\n",
       "      <td>55</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Shares  Low  High\n",
       "Symbol                   \n",
       "AAPL        80   95   110\n",
       "TSLA        50   80   130\n",
       "WMT         40   55    70"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stocks_2016"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares_2016</th>\n",
       "      <th>Low_2016</th>\n",
       "      <th>High_2016</th>\n",
       "      <th>Shares_2017</th>\n",
       "      <th>Low_2017</th>\n",
       "      <th>High_2017</th>\n",
       "      <th>Shares_2018</th>\n",
       "      <th>Low_2018</th>\n",
       "      <th>High_2018</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>110.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>120.0</td>\n",
       "      <td>140.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>135.0</td>\n",
       "      <td>170.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AMZN</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8.0</td>\n",
       "      <td>900.0</td>\n",
       "      <td>1125.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>100.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>87.0</td>\n",
       "      <td>75.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>20.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>85.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>130.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>300.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>220.0</td>\n",
       "      <td>400.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>500.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Shares_2016  Low_2016  High_2016  Shares_2017  Low_2017  High_2017  \\\n",
       "AAPL         80.0      95.0      110.0         50.0     120.0      140.0   \n",
       "AMZN          NaN       NaN        NaN          NaN       NaN        NaN   \n",
       "GE            NaN       NaN        NaN        100.0      30.0       40.0   \n",
       "IBM           NaN       NaN        NaN         87.0      75.0       95.0   \n",
       "SLB           NaN       NaN        NaN         20.0      55.0       85.0   \n",
       "TSLA         50.0      80.0      130.0        100.0     100.0      300.0   \n",
       "TXN           NaN       NaN        NaN        500.0      15.0       23.0   \n",
       "WMT          40.0      55.0       70.0          NaN       NaN        NaN   \n",
       "\n",
       "      Shares_2018  Low_2018  High_2018  \n",
       "AAPL         40.0     135.0      170.0  \n",
       "AMZN          8.0     900.0     1125.0  \n",
       "GE            NaN       NaN        NaN  \n",
       "IBM           NaN       NaN        NaN  \n",
       "SLB           NaN       NaN        NaN  \n",
       "TSLA         50.0     220.0      400.0  \n",
       "TXN           NaN       NaN        NaN  \n",
       "WMT           NaN       NaN        NaN  "
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "other = [stocks_2017.add_suffix('_2017'), stocks_2018.add_suffix('_2018')]\n",
    "stocks_2016.add_suffix('_2016').join(other, how='outer')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "stock_join = stocks_2016.add_suffix('_2016').join(other, how='outer')\n",
    "stock_concat = pd.concat(dict(zip(years,stock_tables)), axis='columns')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "stock_concat.columns = stock_concat.columns.get_level_values(1) + '_' + \\\n",
    "                            stock_concat.columns.get_level_values(0).astype(str)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Shares_2016</th>\n",
       "      <th>Low_2016</th>\n",
       "      <th>High_2016</th>\n",
       "      <th>Shares_2017</th>\n",
       "      <th>Low_2017</th>\n",
       "      <th>High_2017</th>\n",
       "      <th>Shares_2018</th>\n",
       "      <th>Low_2018</th>\n",
       "      <th>High_2018</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AAPL</th>\n",
       "      <td>80.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>110.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>120.0</td>\n",
       "      <td>140.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>135.0</td>\n",
       "      <td>170.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AMZN</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8.0</td>\n",
       "      <td>900.0</td>\n",
       "      <td>1125.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GE</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>100.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>IBM</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>87.0</td>\n",
       "      <td>75.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SLB</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>20.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>85.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TSLA</th>\n",
       "      <td>50.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>130.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>300.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>220.0</td>\n",
       "      <td>400.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TXN</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>500.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WMT</th>\n",
       "      <td>40.0</td>\n",
       "      <td>55.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Shares_2016  Low_2016  High_2016  Shares_2017  Low_2017  High_2017  \\\n",
       "AAPL         80.0      95.0      110.0         50.0     120.0      140.0   \n",
       "AMZN          NaN       NaN        NaN          NaN       NaN        NaN   \n",
       "GE            NaN       NaN        NaN        100.0      30.0       40.0   \n",
       "IBM           NaN       NaN        NaN         87.0      75.0       95.0   \n",
       "SLB           NaN       NaN        NaN         20.0      55.0       85.0   \n",
       "TSLA         50.0      80.0      130.0        100.0     100.0      300.0   \n",
       "TXN           NaN       NaN        NaN        500.0      15.0       23.0   \n",
       "WMT          40.0      55.0       70.0          NaN       NaN        NaN   \n",
       "\n",
       "      Shares_2018  Low_2018  High_2018  \n",
       "AAPL         40.0     135.0      170.0  \n",
       "AMZN          8.0     900.0     1125.0  \n",
       "GE            NaN       NaN        NaN  \n",
       "IBM           NaN       NaN        NaN  \n",
       "SLB           NaN       NaN        NaN  \n",
       "TSLA         50.0     220.0      400.0  \n",
       "TXN           NaN       NaN        NaN  \n",
       "WMT           NaN       NaN        NaN  "
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_concat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "step1 = stocks_2016.merge(stocks_2017, left_index=True, right_index=True, \n",
    "                          how='outer', suffixes=('_2016', '_2017'))\n",
    "stock_merge = step1.merge(stocks_2018.add_suffix('_2018'), \n",
    "                          left_index=True, right_index=True, how='outer')\n",
    "\n",
    "stock_concat.equals(stock_merge)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table style=\"display: inline;\" border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>item</th>\n",
       "      <th>store</th>\n",
       "      <th>price</th>\n",
       "      <th>Date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>pear</td>\n",
       "      <td>A</td>\n",
       "      <td>0.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>pear</td>\n",
       "      <td>B</td>\n",
       "      <td>1.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>peach</td>\n",
       "      <td>A</td>\n",
       "      <td>2.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>peach</td>\n",
       "      <td>B</td>\n",
       "      <td>3.49</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>banana</td>\n",
       "      <td>A</td>\n",
       "      <td>0.39</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>banana</td>\n",
       "      <td>B</td>\n",
       "      <td>0.49</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>steak</td>\n",
       "      <td>A</td>\n",
       "      <td>5.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>6.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>4.99</td>\n",
       "      <td>2015</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<table style=\"display: inline;\" border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>custid</th>\n",
       "      <th>item</th>\n",
       "      <th>store</th>\n",
       "      <th>quantity</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>pear</td>\n",
       "      <td>A</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>banana</td>\n",
       "      <td>A</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>pear</td>\n",
       "      <td>B</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>peach</td>\n",
       "      <td>B</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2</td>\n",
       "      <td>coconut</td>\n",
       "      <td>B</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "names = ['prices', 'transactions']\n",
    "food_tables = [pd.read_csv('data/food_{}.csv'.format(name)) for name in names]\n",
    "food_prices, food_transactions = food_tables\n",
    "display_frames(food_tables, 30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>custid</th>\n",
       "      <th>item</th>\n",
       "      <th>store</th>\n",
       "      <th>quantity</th>\n",
       "      <th>price</th>\n",
       "      <th>Date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>pear</td>\n",
       "      <td>A</td>\n",
       "      <td>5</td>\n",
       "      <td>0.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>banana</td>\n",
       "      <td>A</td>\n",
       "      <td>10</td>\n",
       "      <td>0.39</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>3</td>\n",
       "      <td>6.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>3</td>\n",
       "      <td>4.99</td>\n",
       "      <td>2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>1</td>\n",
       "      <td>6.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>1</td>\n",
       "      <td>4.99</td>\n",
       "      <td>2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2</td>\n",
       "      <td>pear</td>\n",
       "      <td>B</td>\n",
       "      <td>1</td>\n",
       "      <td>1.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2</td>\n",
       "      <td>peach</td>\n",
       "      <td>B</td>\n",
       "      <td>2</td>\n",
       "      <td>3.49</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   custid    item store  quantity  price  Date\n",
       "0       1    pear     A         5   0.99  2017\n",
       "1       1  banana     A        10   0.39  2017\n",
       "2       2   steak     B         3   6.99  2017\n",
       "3       2   steak     B         3   4.99  2015\n",
       "4       2   steak     B         1   6.99  2017\n",
       "5       2   steak     B         1   4.99  2015\n",
       "6       2    pear     B         1   1.99  2017\n",
       "7       2   peach     B         2   3.49  2017"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "food_transactions.merge(food_prices, on=['item', 'store'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>custid</th>\n",
       "      <th>item</th>\n",
       "      <th>store</th>\n",
       "      <th>quantity</th>\n",
       "      <th>price</th>\n",
       "      <th>Date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>pear</td>\n",
       "      <td>A</td>\n",
       "      <td>5</td>\n",
       "      <td>0.99</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>banana</td>\n",
       "      <td>A</td>\n",
       "      <td>10</td>\n",
       "      <td>0.39</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>3</td>\n",
       "      <td>6.99</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>pear</td>\n",
       "      <td>B</td>\n",
       "      <td>1</td>\n",
       "      <td>1.99</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>peach</td>\n",
       "      <td>B</td>\n",
       "      <td>2</td>\n",
       "      <td>3.49</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>1</td>\n",
       "      <td>6.99</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2</td>\n",
       "      <td>coconut</td>\n",
       "      <td>B</td>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   custid     item store  quantity  price    Date\n",
       "0       1     pear     A         5   0.99  2017.0\n",
       "1       1   banana     A        10   0.39  2017.0\n",
       "2       2    steak     B         3   6.99  2017.0\n",
       "3       2     pear     B         1   1.99  2017.0\n",
       "4       2    peach     B         2   3.49  2017.0\n",
       "5       2    steak     B         1   6.99  2017.0\n",
       "6       2  coconut     B         4    NaN     NaN"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "food_transactions.merge(food_prices.query('Date == 2017'), how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>price</th>\n",
       "      <th>Date</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>item</th>\n",
       "      <th>store</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">pear</th>\n",
       "      <th>A</th>\n",
       "      <td>0.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B</th>\n",
       "      <td>1.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">peach</th>\n",
       "      <th>A</th>\n",
       "      <td>2.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B</th>\n",
       "      <td>3.49</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">banana</th>\n",
       "      <th>A</th>\n",
       "      <td>0.39</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B</th>\n",
       "      <td>0.49</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">steak</th>\n",
       "      <th>A</th>\n",
       "      <td>5.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>B</th>\n",
       "      <td>6.99</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              price  Date\n",
       "item   store             \n",
       "pear   A       0.99  2017\n",
       "       B       1.99  2017\n",
       "peach  A       2.99  2017\n",
       "       B       3.49  2017\n",
       "banana A       0.39  2017\n",
       "       B       0.49  2017\n",
       "steak  A       5.99  2017\n",
       "       B       6.99  2017"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "food_prices_join = food_prices.query('Date == 2017').set_index(['item', 'store'])\n",
    "food_prices_join"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>custid</th>\n",
       "      <th>item</th>\n",
       "      <th>store</th>\n",
       "      <th>quantity</th>\n",
       "      <th>price</th>\n",
       "      <th>Date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>pear</td>\n",
       "      <td>A</td>\n",
       "      <td>5</td>\n",
       "      <td>0.99</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>banana</td>\n",
       "      <td>A</td>\n",
       "      <td>10</td>\n",
       "      <td>0.39</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>3</td>\n",
       "      <td>6.99</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2</td>\n",
       "      <td>pear</td>\n",
       "      <td>B</td>\n",
       "      <td>1</td>\n",
       "      <td>1.99</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>peach</td>\n",
       "      <td>B</td>\n",
       "      <td>2</td>\n",
       "      <td>3.49</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2</td>\n",
       "      <td>steak</td>\n",
       "      <td>B</td>\n",
       "      <td>1</td>\n",
       "      <td>6.99</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2</td>\n",
       "      <td>coconut</td>\n",
       "      <td>B</td>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   custid     item store  quantity  price    Date\n",
       "0       1     pear     A         5   0.99  2017.0\n",
       "1       1   banana     A        10   0.39  2017.0\n",
       "2       2    steak     B         3   6.99  2017.0\n",
       "3       2     pear     B         1   1.99  2017.0\n",
       "4       2    peach     B         2   3.49  2017.0\n",
       "5       2    steak     B         1   6.99  2017.0\n",
       "6       2  coconut     B         4    NaN     NaN"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "food_transactions.join(food_prices_join, on=['item', 'store'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "ename": "Exception",
     "evalue": "cannot handle a non-unique multi-index!",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mException\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-106-8aa3223bf3d1>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m pd.concat([food_transactions.set_index(['item', 'store']), \n\u001b[0;32m----> 2\u001b[0;31m            food_prices.set_index(['item', 'store'])], axis='columns')\n\u001b[0m",
      "\u001b[0;32m/Users/Ted/anaconda/lib/python3.6/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, copy)\u001b[0m\n\u001b[1;32m    205\u001b[0m                        \u001b[0mverify_integrity\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mverify_integrity\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    206\u001b[0m                        copy=copy)\n\u001b[0;32m--> 207\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    208\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    209\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/Users/Ted/anaconda/lib/python3.6/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36mget_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    399\u001b[0m                     \u001b[0mobj_labels\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmgr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    400\u001b[0m                     \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mnew_labels\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mequals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj_labels\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 401\u001b[0;31m                         \u001b[0mindexers\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj_labels\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreindex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_labels\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    402\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    403\u001b[0m                 \u001b[0mmgrs_indexers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexers\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/Users/Ted/anaconda/lib/python3.6/site-packages/pandas/core/indexes/multi.py\u001b[0m in \u001b[0;36mreindex\u001b[0;34m(self, target, method, level, limit, tolerance)\u001b[0m\n\u001b[1;32m   1861\u001b[0m                                                tolerance=tolerance)\n\u001b[1;32m   1862\u001b[0m                 \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1863\u001b[0;31m                     \u001b[0;32mraise\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"cannot handle a non-unique multi-index!\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1864\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1865\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtarget\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mMultiIndex\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mException\u001b[0m: cannot handle a non-unique multi-index!"
     ]
    }
   ],
   "source": [
    "pd.concat([food_transactions.set_index(['item', 'store']), \n",
    "           food_prices.set_index(['item', 'store'])], axis='columns')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>All Grades</th>\n",
       "      <th>Diesel</th>\n",
       "      <th>Midgrade</th>\n",
       "      <th>Premium</th>\n",
       "      <th>Regular</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Week</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-09-25</th>\n",
       "      <td>2.701</td>\n",
       "      <td>2.788</td>\n",
       "      <td>2.859</td>\n",
       "      <td>3.105</td>\n",
       "      <td>2.583</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-09-18</th>\n",
       "      <td>2.750</td>\n",
       "      <td>2.791</td>\n",
       "      <td>2.906</td>\n",
       "      <td>3.151</td>\n",
       "      <td>2.634</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-09-11</th>\n",
       "      <td>2.800</td>\n",
       "      <td>2.802</td>\n",
       "      <td>2.953</td>\n",
       "      <td>3.197</td>\n",
       "      <td>2.685</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-09-04</th>\n",
       "      <td>2.794</td>\n",
       "      <td>2.758</td>\n",
       "      <td>2.946</td>\n",
       "      <td>3.191</td>\n",
       "      <td>2.679</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-08-28</th>\n",
       "      <td>2.513</td>\n",
       "      <td>2.605</td>\n",
       "      <td>2.668</td>\n",
       "      <td>2.901</td>\n",
       "      <td>2.399</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            All Grades  Diesel  Midgrade  Premium  Regular\n",
       "Week                                                      \n",
       "2017-09-25       2.701   2.788     2.859    3.105    2.583\n",
       "2017-09-18       2.750   2.791     2.906    3.151    2.634\n",
       "2017-09-11       2.800   2.802     2.953    3.197    2.685\n",
       "2017-09-04       2.794   2.758     2.946    3.191    2.679\n",
       "2017-08-28       2.513   2.605     2.668    2.901    2.399"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import glob\n",
    "\n",
    "df_list = []\n",
    "for filename in glob.glob('data/gas prices/*.csv'):\n",
    "    df_list.append(pd.read_csv(filename, index_col='Week', parse_dates=['Week']))\n",
    "\n",
    "gas = pd.concat(df_list, axis='columns')\n",
    "gas.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Connecting to SQL Databases"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sqlalchemy import create_engine\n",
    "engine = create_engine('sqlite:///data/chinook.db')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>TrackId</th>\n",
       "      <th>Name</th>\n",
       "      <th>AlbumId</th>\n",
       "      <th>MediaTypeId</th>\n",
       "      <th>GenreId</th>\n",
       "      <th>Composer</th>\n",
       "      <th>Milliseconds</th>\n",
       "      <th>Bytes</th>\n",
       "      <th>UnitPrice</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>For Those About To Rock (We Salute You)</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Angus Young, Malcolm Young, Brian Johnson</td>\n",
       "      <td>343719</td>\n",
       "      <td>11170334</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Balls to the Wall</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>None</td>\n",
       "      <td>342562</td>\n",
       "      <td>5510424</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Fast As a Shark</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>F. Baltes, S. Kaufman, U. Dirkscneider &amp; W. Ho...</td>\n",
       "      <td>230619</td>\n",
       "      <td>3990994</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Restless and Wild</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>F. Baltes, R.A. Smith-Diesel, S. Kaufman, U. D...</td>\n",
       "      <td>252051</td>\n",
       "      <td>4331779</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Princess of the Dawn</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>Deaffy &amp; R.A. Smith-Diesel</td>\n",
       "      <td>375418</td>\n",
       "      <td>6290521</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   TrackId                                     Name  AlbumId  MediaTypeId  \\\n",
       "0        1  For Those About To Rock (We Salute You)        1            1   \n",
       "1        2                        Balls to the Wall        2            2   \n",
       "2        3                          Fast As a Shark        3            2   \n",
       "3        4                        Restless and Wild        3            2   \n",
       "4        5                     Princess of the Dawn        3            2   \n",
       "\n",
       "   GenreId                                           Composer  Milliseconds  \\\n",
       "0        1          Angus Young, Malcolm Young, Brian Johnson        343719   \n",
       "1        1                                               None        342562   \n",
       "2        1  F. Baltes, S. Kaufman, U. Dirkscneider & W. Ho...        230619   \n",
       "3        1  F. Baltes, R.A. Smith-Diesel, S. Kaufman, U. D...        252051   \n",
       "4        1                         Deaffy & R.A. Smith-Diesel        375418   \n",
       "\n",
       "      Bytes  UnitPrice  \n",
       "0  11170334       0.99  \n",
       "1   5510424       0.99  \n",
       "2   3990994       0.99  \n",
       "3   4331779       0.99  \n",
       "4   6290521       0.99  "
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tracks = pd.read_sql_table('tracks', engine)\n",
    "tracks.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GenreId</th>\n",
       "      <th>Name</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Rock</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Jazz</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Metal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Alternative &amp; Punk</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Rock And Roll</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   GenreId                Name\n",
       "0        1                Rock\n",
       "1        2                Jazz\n",
       "2        3               Metal\n",
       "3        4  Alternative & Punk\n",
       "4        5       Rock And Roll"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "genres = pd.read_sql_table('genres', engine)\n",
    "genres.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Milliseconds</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Rock</td>\n",
       "      <td>343719</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Rock</td>\n",
       "      <td>342562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Rock</td>\n",
       "      <td>230619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Rock</td>\n",
       "      <td>252051</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Rock</td>\n",
       "      <td>375418</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Name  Milliseconds\n",
       "0  Rock        343719\n",
       "1  Rock        342562\n",
       "2  Rock        230619\n",
       "3  Rock        252051\n",
       "4  Rock        375418"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "genre_track = genres.merge(tracks[['GenreId', 'Milliseconds']], \n",
    "                           on='GenreId', how='left') \\\n",
    "                     .drop('GenreId', axis='columns')\n",
    "genre_track.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Name\n",
       "Rock And Roll        00:02:14\n",
       "Opera                00:02:54\n",
       "Hip Hop/Rap          00:02:58\n",
       "Easy Listening       00:03:09\n",
       "Bossa Nova           00:03:39\n",
       "R&B/Soul             00:03:40\n",
       "World                00:03:44\n",
       "Pop                  00:03:49\n",
       "Latin                00:03:52\n",
       "Alternative & Punk   00:03:54\n",
       "Soundtrack           00:04:04\n",
       "Reggae               00:04:07\n",
       "Alternative          00:04:24\n",
       "Blues                00:04:30\n",
       "Rock                 00:04:43\n",
       "Jazz                 00:04:51\n",
       "Classical            00:04:53\n",
       "Heavy Metal          00:04:57\n",
       "Electronica/Dance    00:05:02\n",
       "Metal                00:05:09\n",
       "Comedy               00:26:25\n",
       "TV Shows             00:35:45\n",
       "Drama                00:42:55\n",
       "Science Fiction      00:43:45\n",
       "Sci Fi & Fantasy     00:48:31\n",
       "Name: Milliseconds, dtype: timedelta64[ns]"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "genre_time = genre_track.groupby('Name')['Milliseconds'].mean()\n",
    "pd.to_timedelta(genre_time, unit='ms').dt.floor('s').sort_values()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "cust = pd.read_sql_table('customers', engine, \n",
    "                         columns=['CustomerId', 'FirstName', 'LastName'])\n",
    "invoice = pd.read_sql_table('invoices', engine, \n",
    "                            columns=['InvoiceId','CustomerId'])\n",
    "ii = pd.read_sql_table('invoice_items', engine, \n",
    "                       columns=['InvoiceId', 'UnitPrice', 'Quantity'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CustomerId</th>\n",
       "      <th>FirstName</th>\n",
       "      <th>LastName</th>\n",
       "      <th>InvoiceId</th>\n",
       "      <th>UnitPrice</th>\n",
       "      <th>Quantity</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Luís</td>\n",
       "      <td>Gonçalves</td>\n",
       "      <td>98</td>\n",
       "      <td>1.99</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>Luís</td>\n",
       "      <td>Gonçalves</td>\n",
       "      <td>98</td>\n",
       "      <td>1.99</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>Luís</td>\n",
       "      <td>Gonçalves</td>\n",
       "      <td>121</td>\n",
       "      <td>0.99</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>Luís</td>\n",
       "      <td>Gonçalves</td>\n",
       "      <td>121</td>\n",
       "      <td>0.99</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>Luís</td>\n",
       "      <td>Gonçalves</td>\n",
       "      <td>121</td>\n",
       "      <td>0.99</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CustomerId FirstName   LastName  InvoiceId  UnitPrice  Quantity\n",
       "0           1      Luís  Gonçalves         98       1.99         1\n",
       "1           1      Luís  Gonçalves         98       1.99         1\n",
       "2           1      Luís  Gonçalves        121       0.99         1\n",
       "3           1      Luís  Gonçalves        121       0.99         1\n",
       "4           1      Luís  Gonçalves        121       0.99         1"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cust_inv = cust.merge(invoice, on='CustomerId') \\\n",
    "               .merge(ii, on='InvoiceId')\n",
    "cust_inv.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CustomerId  FirstName  LastName  \n",
       "6           Helena     Holý          49.62\n",
       "26          Richard    Cunningham    47.62\n",
       "57          Luis       Rojas         46.62\n",
       "46          Hugh       O'Reilly      45.62\n",
       "45          Ladislav   Kovács        45.62\n",
       "Name: Total, dtype: float64"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total = cust_inv['Quantity'] * cust_inv['UnitPrice']\n",
    "cols = ['CustomerId', 'FirstName', 'LastName']\n",
    "cust_inv.assign(Total = total).groupby(cols)['Total'] \\\n",
    "                                  .sum() \\\n",
    "                                  .sort_values(ascending=False).head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## There's more..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>TrackId</th>\n",
       "      <th>Name</th>\n",
       "      <th>AlbumId</th>\n",
       "      <th>MediaTypeId</th>\n",
       "      <th>GenreId</th>\n",
       "      <th>Composer</th>\n",
       "      <th>Milliseconds</th>\n",
       "      <th>Bytes</th>\n",
       "      <th>UnitPrice</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>For Those About To Rock (We Salute You)</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Angus Young, Malcolm Young, Brian Johnson</td>\n",
       "      <td>343719</td>\n",
       "      <td>11170334</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Balls to the Wall</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>None</td>\n",
       "      <td>342562</td>\n",
       "      <td>5510424</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Fast As a Shark</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>F. Baltes, S. Kaufman, U. Dirkscneider &amp; W. Ho...</td>\n",
       "      <td>230619</td>\n",
       "      <td>3990994</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Restless and Wild</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>F. Baltes, R.A. Smith-Diesel, S. Kaufman, U. D...</td>\n",
       "      <td>252051</td>\n",
       "      <td>4331779</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Princess of the Dawn</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>Deaffy &amp; R.A. Smith-Diesel</td>\n",
       "      <td>375418</td>\n",
       "      <td>6290521</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   TrackId                                     Name  AlbumId  MediaTypeId  \\\n",
       "0        1  For Those About To Rock (We Salute You)        1            1   \n",
       "1        2                        Balls to the Wall        2            2   \n",
       "2        3                          Fast As a Shark        3            2   \n",
       "3        4                        Restless and Wild        3            2   \n",
       "4        5                     Princess of the Dawn        3            2   \n",
       "\n",
       "   GenreId                                           Composer  Milliseconds  \\\n",
       "0        1          Angus Young, Malcolm Young, Brian Johnson        343719   \n",
       "1        1                                               None        342562   \n",
       "2        1  F. Baltes, S. Kaufman, U. Dirkscneider & W. Ho...        230619   \n",
       "3        1  F. Baltes, R.A. Smith-Diesel, S. Kaufman, U. D...        252051   \n",
       "4        1                         Deaffy & R.A. Smith-Diesel        375418   \n",
       "\n",
       "      Bytes  UnitPrice  \n",
       "0  11170334       0.99  \n",
       "1   5510424       0.99  \n",
       "2   3990994       0.99  \n",
       "3   4331779       0.99  \n",
       "4   6290521       0.99  "
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.read_sql_query('select * from tracks limit 5', engine)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>avg_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Rock And Roll</td>\n",
       "      <td>00:02:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Opera</td>\n",
       "      <td>00:02:54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Hip Hop/Rap</td>\n",
       "      <td>00:02:58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Easy Listening</td>\n",
       "      <td>00:03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Bossa Nova</td>\n",
       "      <td>00:03:39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>R&amp;B/Soul</td>\n",
       "      <td>00:03:40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>World</td>\n",
       "      <td>00:03:44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Pop</td>\n",
       "      <td>00:03:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Latin</td>\n",
       "      <td>00:03:52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Alternative &amp; Punk</td>\n",
       "      <td>00:03:54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Soundtrack</td>\n",
       "      <td>00:04:04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Reggae</td>\n",
       "      <td>00:04:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>Alternative</td>\n",
       "      <td>00:04:24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>Blues</td>\n",
       "      <td>00:04:30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>Rock</td>\n",
       "      <td>00:04:43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>Jazz</td>\n",
       "      <td>00:04:51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>Classical</td>\n",
       "      <td>00:04:53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>Heavy Metal</td>\n",
       "      <td>00:04:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>Electronica/Dance</td>\n",
       "      <td>00:05:02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>Metal</td>\n",
       "      <td>00:05:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>Comedy</td>\n",
       "      <td>00:26:25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>TV Shows</td>\n",
       "      <td>00:35:45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>Drama</td>\n",
       "      <td>00:42:55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>Science Fiction</td>\n",
       "      <td>00:43:45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>Sci Fi &amp; Fantasy</td>\n",
       "      <td>00:48:31</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  Name  avg_time\n",
       "0        Rock And Roll  00:02:14\n",
       "1                Opera  00:02:54\n",
       "2          Hip Hop/Rap  00:02:58\n",
       "3       Easy Listening  00:03:09\n",
       "4           Bossa Nova  00:03:39\n",
       "5             R&B/Soul  00:03:40\n",
       "6                World  00:03:44\n",
       "7                  Pop  00:03:49\n",
       "8                Latin  00:03:52\n",
       "9   Alternative & Punk  00:03:54\n",
       "10          Soundtrack  00:04:04\n",
       "11              Reggae  00:04:07\n",
       "12         Alternative  00:04:24\n",
       "13               Blues  00:04:30\n",
       "14                Rock  00:04:43\n",
       "15                Jazz  00:04:51\n",
       "16           Classical  00:04:53\n",
       "17         Heavy Metal  00:04:57\n",
       "18   Electronica/Dance  00:05:02\n",
       "19               Metal  00:05:09\n",
       "20              Comedy  00:26:25\n",
       "21            TV Shows  00:35:45\n",
       "22               Drama  00:42:55\n",
       "23     Science Fiction  00:43:45\n",
       "24    Sci Fi & Fantasy  00:48:31"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sql_string1 = '''\n",
    "select \n",
    "    Name, \n",
    "    time(avg(Milliseconds) / 1000, 'unixepoch') as avg_time\n",
    "from (\n",
    "        select \n",
    "            g.Name, \n",
    "            t.Milliseconds\n",
    "        from \n",
    "            genres as g \n",
    "        join\n",
    "            tracks as t\n",
    "            on \n",
    "                g.genreid == t.genreid\n",
    "    )\n",
    "group by \n",
    "    Name\n",
    "order by \n",
    "    avg_time\n",
    "'''\n",
    "pd.read_sql_query(sql_string1, engine)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CustomerId</th>\n",
       "      <th>FirstName</th>\n",
       "      <th>LastName</th>\n",
       "      <th>Total</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>Helena</td>\n",
       "      <td>Holý</td>\n",
       "      <td>49.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>26</td>\n",
       "      <td>Richard</td>\n",
       "      <td>Cunningham</td>\n",
       "      <td>47.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>57</td>\n",
       "      <td>Luis</td>\n",
       "      <td>Rojas</td>\n",
       "      <td>46.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>45</td>\n",
       "      <td>Ladislav</td>\n",
       "      <td>Kovács</td>\n",
       "      <td>45.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>46</td>\n",
       "      <td>Hugh</td>\n",
       "      <td>O'Reilly</td>\n",
       "      <td>45.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>37</td>\n",
       "      <td>Fynn</td>\n",
       "      <td>Zimmermann</td>\n",
       "      <td>43.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>24</td>\n",
       "      <td>Frank</td>\n",
       "      <td>Ralston</td>\n",
       "      <td>43.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>28</td>\n",
       "      <td>Julia</td>\n",
       "      <td>Barnett</td>\n",
       "      <td>43.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>25</td>\n",
       "      <td>Victor</td>\n",
       "      <td>Stevens</td>\n",
       "      <td>42.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>7</td>\n",
       "      <td>Astrid</td>\n",
       "      <td>Gruber</td>\n",
       "      <td>42.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>44</td>\n",
       "      <td>Terhi</td>\n",
       "      <td>Hämäläinen</td>\n",
       "      <td>41.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>5</td>\n",
       "      <td>František</td>\n",
       "      <td>Wichterlová</td>\n",
       "      <td>40.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>43</td>\n",
       "      <td>Isabelle</td>\n",
       "      <td>Mercier</td>\n",
       "      <td>40.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>48</td>\n",
       "      <td>Johannes</td>\n",
       "      <td>Van der Berg</td>\n",
       "      <td>40.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>20</td>\n",
       "      <td>Dan</td>\n",
       "      <td>Miller</td>\n",
       "      <td>39.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>34</td>\n",
       "      <td>João</td>\n",
       "      <td>Fernandes</td>\n",
       "      <td>39.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>1</td>\n",
       "      <td>Luís</td>\n",
       "      <td>Gonçalves</td>\n",
       "      <td>39.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>3</td>\n",
       "      <td>François</td>\n",
       "      <td>Tremblay</td>\n",
       "      <td>39.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>4</td>\n",
       "      <td>Bjørn</td>\n",
       "      <td>Hansen</td>\n",
       "      <td>39.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>17</td>\n",
       "      <td>Jack</td>\n",
       "      <td>Smith</td>\n",
       "      <td>39.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>22</td>\n",
       "      <td>Heather</td>\n",
       "      <td>Leacock</td>\n",
       "      <td>39.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>42</td>\n",
       "      <td>Wyatt</td>\n",
       "      <td>Girard</td>\n",
       "      <td>39.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>15</td>\n",
       "      <td>Jennifer</td>\n",
       "      <td>Peterson</td>\n",
       "      <td>38.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>19</td>\n",
       "      <td>Tim</td>\n",
       "      <td>Goyer</td>\n",
       "      <td>38.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>39</td>\n",
       "      <td>Camille</td>\n",
       "      <td>Bernard</td>\n",
       "      <td>38.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>40</td>\n",
       "      <td>Dominique</td>\n",
       "      <td>Lefebvre</td>\n",
       "      <td>38.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>51</td>\n",
       "      <td>Joakim</td>\n",
       "      <td>Johansson</td>\n",
       "      <td>38.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>58</td>\n",
       "      <td>Manoj</td>\n",
       "      <td>Pareek</td>\n",
       "      <td>38.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>2</td>\n",
       "      <td>Leonie</td>\n",
       "      <td>Köhler</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>8</td>\n",
       "      <td>Daan</td>\n",
       "      <td>Peeters</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>9</td>\n",
       "      <td>Kara</td>\n",
       "      <td>Nielsen</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>10</td>\n",
       "      <td>Eduardo</td>\n",
       "      <td>Martins</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>11</td>\n",
       "      <td>Alexandre</td>\n",
       "      <td>Rocha</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>12</td>\n",
       "      <td>Roberto</td>\n",
       "      <td>Almeida</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>13</td>\n",
       "      <td>Fernanda</td>\n",
       "      <td>Ramos</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>14</td>\n",
       "      <td>Mark</td>\n",
       "      <td>Philips</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>16</td>\n",
       "      <td>Frank</td>\n",
       "      <td>Harris</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>18</td>\n",
       "      <td>Michelle</td>\n",
       "      <td>Brooks</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>21</td>\n",
       "      <td>Kathy</td>\n",
       "      <td>Chase</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>23</td>\n",
       "      <td>John</td>\n",
       "      <td>Gordon</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>27</td>\n",
       "      <td>Patrick</td>\n",
       "      <td>Gray</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>29</td>\n",
       "      <td>Robert</td>\n",
       "      <td>Brown</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>30</td>\n",
       "      <td>Edward</td>\n",
       "      <td>Francis</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>31</td>\n",
       "      <td>Martha</td>\n",
       "      <td>Silk</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>32</td>\n",
       "      <td>Aaron</td>\n",
       "      <td>Mitchell</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>33</td>\n",
       "      <td>Ellie</td>\n",
       "      <td>Sullivan</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>35</td>\n",
       "      <td>Madalena</td>\n",
       "      <td>Sampaio</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>36</td>\n",
       "      <td>Hannah</td>\n",
       "      <td>Schneider</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>38</td>\n",
       "      <td>Niklas</td>\n",
       "      <td>Schröder</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>41</td>\n",
       "      <td>Marc</td>\n",
       "      <td>Dubois</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>47</td>\n",
       "      <td>Lucas</td>\n",
       "      <td>Mancini</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>49</td>\n",
       "      <td>Stanisław</td>\n",
       "      <td>Wójcik</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>50</td>\n",
       "      <td>Enrique</td>\n",
       "      <td>Muñoz</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>52</td>\n",
       "      <td>Emma</td>\n",
       "      <td>Jones</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>53</td>\n",
       "      <td>Phil</td>\n",
       "      <td>Hughes</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>54</td>\n",
       "      <td>Steve</td>\n",
       "      <td>Murray</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>56</th>\n",
       "      <td>55</td>\n",
       "      <td>Mark</td>\n",
       "      <td>Taylor</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>56</td>\n",
       "      <td>Diego</td>\n",
       "      <td>Gutiérrez</td>\n",
       "      <td>37.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>59</td>\n",
       "      <td>Puja</td>\n",
       "      <td>Srivastava</td>\n",
       "      <td>36.64</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    CustomerId  FirstName      LastName  Total\n",
       "0            6     Helena          Holý  49.62\n",
       "1           26    Richard    Cunningham  47.62\n",
       "2           57       Luis         Rojas  46.62\n",
       "3           45   Ladislav        Kovács  45.62\n",
       "4           46       Hugh      O'Reilly  45.62\n",
       "5           37       Fynn    Zimmermann  43.62\n",
       "6           24      Frank       Ralston  43.62\n",
       "7           28      Julia       Barnett  43.62\n",
       "8           25     Victor       Stevens  42.62\n",
       "9            7     Astrid        Gruber  42.62\n",
       "10          44      Terhi    Hämäläinen  41.62\n",
       "11           5  František   Wichterlová  40.62\n",
       "12          43   Isabelle       Mercier  40.62\n",
       "13          48   Johannes  Van der Berg  40.62\n",
       "14          20        Dan        Miller  39.62\n",
       "15          34       João     Fernandes  39.62\n",
       "16           1       Luís     Gonçalves  39.62\n",
       "17           3   François      Tremblay  39.62\n",
       "18           4      Bjørn        Hansen  39.62\n",
       "19          17       Jack         Smith  39.62\n",
       "20          22    Heather       Leacock  39.62\n",
       "21          42      Wyatt        Girard  39.62\n",
       "22          15   Jennifer      Peterson  38.62\n",
       "23          19        Tim         Goyer  38.62\n",
       "24          39    Camille       Bernard  38.62\n",
       "25          40  Dominique      Lefebvre  38.62\n",
       "26          51     Joakim     Johansson  38.62\n",
       "27          58      Manoj        Pareek  38.62\n",
       "28           2     Leonie        Köhler  37.62\n",
       "29           8       Daan       Peeters  37.62\n",
       "30           9       Kara       Nielsen  37.62\n",
       "31          10    Eduardo       Martins  37.62\n",
       "32          11  Alexandre         Rocha  37.62\n",
       "33          12    Roberto       Almeida  37.62\n",
       "34          13   Fernanda         Ramos  37.62\n",
       "35          14       Mark       Philips  37.62\n",
       "36          16      Frank        Harris  37.62\n",
       "37          18   Michelle        Brooks  37.62\n",
       "38          21      Kathy         Chase  37.62\n",
       "39          23       John        Gordon  37.62\n",
       "40          27    Patrick          Gray  37.62\n",
       "41          29     Robert         Brown  37.62\n",
       "42          30     Edward       Francis  37.62\n",
       "43          31     Martha          Silk  37.62\n",
       "44          32      Aaron      Mitchell  37.62\n",
       "45          33      Ellie      Sullivan  37.62\n",
       "46          35   Madalena       Sampaio  37.62\n",
       "47          36     Hannah     Schneider  37.62\n",
       "48          38     Niklas      Schröder  37.62\n",
       "49          41       Marc        Dubois  37.62\n",
       "50          47      Lucas       Mancini  37.62\n",
       "51          49  Stanisław        Wójcik  37.62\n",
       "52          50    Enrique         Muñoz  37.62\n",
       "53          52       Emma         Jones  37.62\n",
       "54          53       Phil        Hughes  37.62\n",
       "55          54      Steve        Murray  37.62\n",
       "56          55       Mark        Taylor  37.62\n",
       "57          56      Diego     Gutiérrez  37.62\n",
       "58          59       Puja    Srivastava  36.64"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sql_string2 = '''\n",
    "select \n",
    "      c.customerid, \n",
    "      c.FirstName, \n",
    "      c.LastName, \n",
    "      sum(ii.quantity *  ii.unitprice) as Total\n",
    "from\n",
    "     customers as c\n",
    "join\n",
    "     invoices as i\n",
    "          on c.customerid = i.customerid\n",
    "join\n",
    "    invoice_items as ii\n",
    "          on i.invoiceid = ii.invoiceid\n",
    "group by\n",
    "    c.customerid, c.FirstName, c.LastName\n",
    "order by\n",
    "    Total desc\n",
    "'''\n",
    "pd.read_sql_query(sql_string2, engine)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
